這兩天實驗室的一哥們在搭建hadoop平台,由於是linux新手,在搭建的過程中遇到各種問題,以至於弄了將近乙個禮拜還沒有搞定,後來叫我去幫忙,花了兩個小時左右終於幫他搞定,裡面的錯誤確實是我之前沒有遇到的,故在此備忘,也希望能幫助到一些新手。
主要問題包括:(1) 環境變數 (2) 金鑰配置 (3) 目錄許可權
1.環境變數
由於該哥們是linux新手,hadoop的搭建過程是網上查詢的,其實理論上網上確實有很多很詳細的hadoop搭建教程,照著這些步驟應該不會有什麼問題。但是,這哥們不知從**弄了乙份hadoop搭建的word文件,我看了一下,也沒什麼問題。問題是他想偷懶,直接將裡面的一些配置複製,然後貼上到linux中,並根據自己的實際情況將一些路徑做了修改。聽著應該也不會有什麼錯誤,可實際執行的時候總是報錯。
在執行 hdfs namenode -format 時,總是報錯:can't find or load main class error in hadoop org.apache.hadoop.hdfs.server.namenode.namenode
2 金鑰配置。理論上照著網上的各種教程操作,是不會有問題的,但實際往往會被自己挖的坑給埋了。這哥們配置金鑰也弄了一天多了,都是照著教程來的,看著確實也沒什麼問題,可就是始終不能使用金鑰登入。我幫他看了, .ssh目錄的許可權是700,對的;authorized_keys許可權是644,也對的;id_rsa許可權600,也沒問題。那到底是什麼原因呢?
我將.ssh目錄刪除,再重新生成金鑰,弄了兩次,還是不行。這太不科學了!!幸虧我之前處理過ssh暴力破解的一些事情,知道了ssh登入時會有日誌記錄的。於是,我在乙個終端切換到/var/log/目錄下(centos),再tail -f secure 檢視輸出資訊,但我再次登陸時,日誌輸出了/home/hadoop 相關的許可權問題,而不是/home/hadoop/.ssh的許可權問題,
於是,我檢視了/home/hadoop/的許可權,我去,這哥們由於擔心許可權問題,將該目錄的許可權改為777了,大多數情況下不會有問題,可恰巧金鑰登入對許可權的要求很嚴,發現該目錄的許可權太開放了,於是就導致金鑰登入失敗。教訓:linux下盡量別把目錄的許可權設定得太開放,一方面是為了安全,另一方面也可以避免金鑰登入這種許可權太開放的問題。
3 目錄許可權。這相對來講已經是比較好解決的了。上面已經配置好了金鑰,執行start-all.sh指令碼時,一切看著很正常,沒有報錯,也顯示node1,node2的datanode、nodemanager進啟動成功。可是在node1和node2上檢視程序時,有nodemanager程序,始終沒有看到datanode相關的程序,這不科學啊!!於是我再次執行start-all.sh,還是同樣的情況,
於是我在檢視了node1上檢視了datanode啟動記錄的日誌($hadoop_home/logs/hadoop-hadoop-datanode-node1.log),裡面說data目錄的許可權不夠,我一看該目錄的許可權:該目錄的屬主是root,而我們執行hadoop是使用hadoop與使用者。於是,將該目錄的屬主改為hadoop。一切ok!
一些注意事項
0.解題思路 a.普通思路 b.遞迴 bfs dfs c.動態規劃 比遞迴快 d.雙指標 比for迴圈快 如 快慢指標方法 e.用棧 1.陣列初始化 int a new int 5 a 0 預設為0.二維陣列也一樣。boolean b new boolean 5 b 0 預設為false.strin...
php XPATH一些注意事項
40集 建立乙個dom物件並讀取xml檔案到記憶體中 dom new domdocument 1.0 utf 8 dom load book.xml 建立乙個xpath物件 xpath new domxpath dom sql bookstore book 1 title 注意此處路徑數字從1開始,...
vue一些注意事項
1.生命週期鉤子的this上下文指向呼叫它的 vue 例項。不要在選項屬性或 上使用箭頭函式,比如 created console.log this.a 或 vm.watch a newvalue this.mymethod 因為箭頭函式是和父級上下文繫結在一起的,this 不會是如你所預期的 vu...