Hadoop配置注意事項及命令使用經驗總結
本節和大家一起學習一下Hadoop配置過程中應該注意的一些問題,同時和大家分享一下使用Hadoop命令過程中的一些感受,歡迎大家一起來學習,以便在以后的學習過程中避免犯錯誤,希望通過本節的介紹大家對Hadoop配置和Hadoop命令有更加深刻的認識。
Hadoop配置注意事項:
Master和Slave上的幾個conf配置文件不需要全部同步,如果確定都是通過Master去啟動和關閉,那么Slave機器上的配置不需要去維護。但如果希望在任意一臺機器都可以啟動和關閉Hadoop,那么就需要全部保持一致了。
Master和Slave機器上的/etc/hosts中必須把集群中機器都配置上去,就算在各個配置文件中使用的是IP。這個吃過不少苦頭,原來以為如果配成IP就不需要去配置Host,結果發現在執行Reduce的時候總是卡住,在拷貝的時候就無法繼續下去,不斷重試。另外如果集群中如果有兩臺機器的機器名如果重復也會出現問題。
如果在新增了節點或者刪除節點的時候出現了問題,首先就去刪除Slave的hadoop.tmp.dir,然后重新啟動試試看,如果還是不行那就干脆把Master的hadoop.tmp.dir刪除(意味著dfs上的數據也會丟失),如果刪除了Master的hadoop.tmp.dir,那么就需要重新namenode–format。Map任務個數以及Reduce任務個數配置。前面分布式文件系統設計提到一個文件被放入到分布式文件系統中,會被分割成多個block放置到每一個的DataNode上,默認dfs.block.size應該是64M,也就是說
如果你放置到HDFS上的數據小于64,那么將只有一個Block,此時會被放置到某一個DataNode中,這個可以通過使用命令:hadoopdfsadmin–report就可以看到各個節點存儲的情況。也可以直接去某一個DataNode查看目錄:hadoop.tmp.dir/dfs/data/current就可以看到那些block了。Block的數量將會直接影響到Map的個數。當然可以通過配置來設定Map和Reduce的任務個數。Map的個數通常默認和HDFS需要處理的blocks相同。也可以通過Hadoop配置Map的數量或者配置minimumsplitsize來設定,實際的個數為:max(min(block_size,data/#maps),min_split_size)。Reduce可以通過這個公式計算:0.95*num_nodes*mapred.tasktracker.tasks.maximum。
總的來說出了問題或者啟動的時候最好去看看日志,這樣心里有底。
Hadoop中的命令(Command)總結:
這部分內容其實可以通過命令的Help以及介紹了解,我主要側重于介紹一下我用的比較多的幾個命令。Hadoopdfs這個命令后面加參數就是對于HDFS的操作,和Linux操作系統的命令很類似,例如:
Hadoopdfs–ls就是查看/usr/root目錄下的內容,默認如果不填路徑這就是當前用戶路徑;
Hadoopdfs–rmrxxx就是刪除目錄,還有很多命令看看就很容易上手;
Hadoopdfsadmin–report這個命令可以全局的查看DataNode的情況;
Hadoopjob后面增加參數是對于當前運行的Job的操作,例如list,kill等;
Hadoopbalancer就是前面提到的均衡磁盤負載的命令。
其他就不詳細介紹了。本節關于Hadoop配置及命令方面的內容介紹完畢。
【編輯推薦】