我最近在學習 hadoop 的時候,由於剛入門的緣故,配置 hadoop 集群的過程中遇到了很多問題,以下的每個問題都是我遇到過的,並且成功解決了的,故而,我將這個過程記錄下來,希望可以幫助到更多的朋友。
1、在配置過 ssh 免密登入後,使用 start-all.sh 啟動 hadoop 集群時,系統提示 permission denied,且無法正常啟動主節點的程序。
這是由於許可權不足且只配置了其他節點的 ssh 的免密登入,當啟動本機的 root 使用者登入時無法免密登入,故而,需要配置本機的 ssh 免密登入。(詳情參見centos 7 集群配置ssh免密登入,只需將自身的 id_rsa.pub 與 authorized_keys 合併即可。)
2、在啟動後,使用 jps 查詢程序,發現主節點的 datanode 正常啟動,但是其他兩個從節點的 datanode 未啟動。
這是由於在格式化 namenode、啟動集群後又對配置檔案進行了修改,這時,由於主節點的 datanode 的 clusterid 與從節點中的 clusterid不一致了,所以,無法啟動 datanode。這時需要找到 $/data/tmp/dfs/data/current 中的 version 檔案,將裡面的 clusterid 覆蓋另外兩個兩個從節點的 clusterid 即可。(如果裡面沒有保留重要資料的話,可以選擇直接刪除 tmp 資料夾裡面的所有檔案,在格式化 namenode)
3、在啟動後,使用 jps 查詢程序,發現所有節點的 datanode 都未啟動。
原因與上面第二點相似,在上述修改前提下,將 $/data/tmp/dfs/data/current 與 $/data/tmp/dfs/name/current 中的 version 檔案的 clusterid 改為一致(將 name 內的覆蓋到 data 中)。
4、啟動集群後,只成功啟動了 nodemanager,但未成功啟動 resourcemanager 。
這是由於我部署的 namenode 和 resourcemanager 並不在一台主機上,所以,在主節點上 start-all.sh 啟動服務後,仍然需要回到部署 resourcemanager 的節點手動啟動 start-yarn.sh 服務。
Hadoop Hadoop 傳遞引數
寫mapreduce程式通常要傳遞各種各樣的引數,選擇合適的方式來傳遞引數既能提高工作效率,也可以避免bug的產生。根據引數的大小,可以粗略的分為以下幾種。最直接的方式就是使用configuration的各種set方法,對於基本資料型別都有很好的支援,比如傳遞kmeans聚類演算法的中心點個數。正確...
hadoop hadoop的各種版本
選型由於apache hadoop是開源的,任何人可以對其修改並作為開源或者商業的產品,所以出現很多發行版本,例如華為發行版 cloudera發行版 cdh 等。hadoop三大發行版本 apache cloudera hortonworks。apache版本最原始 最基礎 的版本,對於入門學習最好...
qt eclipse mingw gdb 配置過程
eclipse cpp galileo sr1 win32.zip,qt eclipse integration win32 1.5.3.exe,mingw 5.1.6.exe,gdb 7.0 2 mingw32 bin.tar.gz 2 解壓eclipse到某目錄 3 安裝mingw,安裝過程中不...