Hadoop機架感知及啟動停止方法詳解
在學習Hadoop的過程中,你可能會遇到Hadoop的機架感知方面的問題,本節就向大家介紹一下Hadoop的機架感知方面的知識以及Hadoop的啟動和停止的方法,歡迎大家一起來學習。下面是具體講解。
Hadoop的機架感知
HDFS和Map/Reduce的組件是能夠感知機架的。
NameNode和JobTracker通過調用管理員配置模塊中的APIresolve來獲取集群里每個slave的機架id。該API將slave的DNS名稱(或者IP地址)轉換成機架id。使用哪個模塊是通過配置項
topology.node.switch.mapping.impl來指定的。模塊的默認實現會調用topology.script.file.name配置項指定的一個的腳本/命令。如果topology.script.file.name未被設置,對于所有傳入的IP地址
,模塊會返回/default-rack作為機架id。在Map/Reduce部分還有一個額外的配置項mapred.cache.task.levels,該參數決定cache的級數(在網絡拓撲中)。例如,如果默認值是2,會建立兩級的cache-一級針對主機(主機->任務的映射)另一級針對機架(機架->任務的映射)。
啟動Hadoop
啟動Hadoop集群需要啟動HDFS集群和Map/Reduce集群。
格式化一個新的分布式文件系統:
$bin/hadoopnamenode-format
在分配的NameNode上,運行下面的命令啟動HDFS:
$bin/start-dfs.sh
bin/start-dfs.sh腳本會參照NameNode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動DataNode守護進程。
在分配的JobTracker上,運行下面的命令啟動Map/Reduce:
$bin/start-mapred.sh
bin/start-mapred.sh腳本會參照JobTracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動TaskTracker守護進程。
停止Hadoop
在分配的NameNode上,執行下面的命令停止HDFS:
$bin/stop-dfs.sh
bin/stop-dfs.sh腳本會參照NameNode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停止DataNode守護進程。
在分配的JobTracker上,運行下面的命令停止Map/Reduce:
$bin/stop-mapred.sh
bin/stop-mapred.sh腳本會參照JobTracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停止TaskTracker守護進程。
【編輯推薦】