Hadoop增加和刪除節點
1. DataNode
1.0 配置檔案
在master/namenode下修改配置檔案conf/mapred-site.xml。關鍵引數dfs.hosts和dfs.hosts.exclude。注意:不同hadoop版本的配置檔案規劃不太一致!具體參考相關版本的hadoop官方文件的cluster setup部分。 點選相同或相近版本。
上面的說法是在hadoop 1.x中的,後面也以該版本舉例;在hadoop 0.x中上述配置存放在檔案conf/hadoop-site.xml中;在hadoop 2.x中變化很大,檔案為conf/hdfs-site.xml中,引數名為:dfs.namenode.hosts和fs.namenode.hosts.exclude。
引數作用: dfs.hosts: 允許接入為DataNode的機器列表,如果不配置或所指定的列表檔案為空則預設允許所有主機成為DataNode dfs.hosts.exclude: 拒絕接入為DataNode的機器列表,如果一臺機器同時出現在兩個列表中,則拒絕。它們的本質作用是拒絕某些節點上的datanode程式連線,而不是排程這些節點上datanode程式的允許和關閉。
用法舉例:修改conf/mapred-site.xml,新增:
<property> <name>dfs.hosts</name> <value>/opt/hadoop/conf/datanode-allow.list</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/opt/hadoop/conf/datanode-deny.list</value> </property>如果不需要允許列表,就不要建立對應項了。然後建立value所指定的檔案。一行寫一個主機名。
1.1 新增
1,在新slave上進行相關配置。
2,在master上的slave列表加入該slave(非必須,方便以後重啟cluster用)
3,(若有)在datanode-allow.list中加入該slave
4,在slave上啟動datanode程式:
執行:hadoop-daemon.sh start datanode
PS:可以用jps命令檢視機器上的java程式的pid和程式名。
1.2 刪除
極端不建議直接在slave上透過: hadoop-daemon.sh stop datanode 命令關掉datanode,這會導致hdfs中出現missing block。1,在master上修改datanode-deny.list,新增相應機器 2,在master上重新整理節點配置情況: hadoop dfsadmin -refreshNodes
此時在Web UI上立即就可以看到該節點變為Decommissioning狀態,過一會就變為Dead了。也可以透過:hadoop dfsadmin -report命令檢視。 3,在slave上關閉datanode程式(非必須):執行:hadoop-daemon.sh stop datanode
1.2.1 重新加入各個刪除的節點
1,在master的datanode-deny.list刪除相應機器 2,在master上重新整理節點配置情況: hadoop dfsadmin -refreshNodes3,在slave上重啟datanode程式: hadoop-daemon.sh start datanode
PS:如果之前沒有關閉該slave上的datanode程式,需要先關閉再重新啟動。
2. TackTracker
2.0 配置檔案
hadoop 1.x下在master/namenode下修改配置檔案conf/mapred-site.xml。關鍵引數mapred.hosts和mapred.hosts.exclude。對於hadoop 0.x需要修改配置檔案conf/hadoop-site.xml;對於hadoop 2.x還沒有搞清楚,先不說。
引數作用:和datanode的對應項一樣。
用法舉例:修改conf/mapred-site.xml,新增:
<property> <name><span style="font-family: Arial, Helvetica, sans-serif;">mapred<span style="font-family: Arial, Helvetica, sans-serif;">.hosts</name> <value>/opt/hadoop/conf/tasktracker-allow.list</value> </property> <property> <name><span style="font-family: Arial, Helvetica, sans-serif;">mapred.hosts.exclude</name> <value>/opt/hadoop/conf/tasktracker-deny.list</value> </property>如果不需要允許列表,就不要建立對應項了。然後建立value所指定的檔案。一行寫一個主機名。
2.1 新增
1,在新slave上進行相關配置。
2,在master上的slave列表加入該slave(非必須,方便以後重啟cluster用)
3,(若有)在tasktracker-allow.list中加入該slave
4,在slave上啟動tasktracker程式:
執行:hadoop-daemon.sh start tasktracker
PS:可以用jps命令檢視機器上的java程式的pid和程式名。
2.2 刪除
不建議直接在slave上透過: hadoop-daemon.sh stop tasktracker 命令關掉tasktracker,這會導致namenode認為這些機器暫時失聯,在一個超時時間內(預設10min+30s)依然假設它們是正常的還會將任務傳送給它們。1,在master上修改tasktracker-deny.list,新增相應機器 2,在master上重新整理節點配置情況: hadoop mradmin -refreshNodes
此時在Web UI上立即就可以看到Nodes的數量減少了,而Exclude Nodes的數量增加了。可以點進去具體檢視。 3,在slave上關閉tasktracker程式(非必須):執行:hadoop-daemon.sh stop tasktracker
2.2.1 重新加入各個刪除的節點
1,在master的tasktracker-deny.list刪除相應機器 2,在master上重新整理節點配置情況: hadoop mradmin -refreshNodes3,在slave上重啟tasktracker程式: hadoop-daemon.sh start tasktracker
PS:如果之前沒有關閉該slave上的tasktracker程式,需要先關閉再重新啟動。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30316686/viewspace-2094927/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 11.2.0.4 RAC生產環境刪除故障節點與增加新服務節點
- 一體機HDATA節點新增和刪除
- Hyperledger Fabric節點的動態新增和刪除
- XML DOM 刪除節點概述XML
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- jQuery列表動態增加和刪除jQuery
- DOM節點刪除方法小結
- mongodb副本集新增刪除節點MongoDB
- redis cluster節點/新增刪除操作Redis
- networkx基礎用法:新增節點、新增邊、刪除節點、刪除邊、計算度、賦權重
- python列表資料如何增加和刪除Python
- k8s叢集刪除和新增node節點K8S
- JZ18刪除表的節點
- js中dom節點刪除remove方法JSREM
- Oracle叢集軟體管理-新增和刪除叢集節點Oracle
- openGauss 備機增加刪除
- Oracle 增加 修改 刪除 列Oracle
- 切換功能增加刪除
- JavaScript刪除元素節點程式碼例項JavaScript
- oracle11g_RAC新增刪除節點Oracle
- Mysql增加節點MySql
- [Kubernetes]node節點pod無法啟動/節點刪除網路重置
- 工作293:調節刪除順序刪除
- leetcode----刪除連結串列中的節點LeetCode
- 二叉搜尋樹如何刪除節點
- 牛客(刪除連結串列中重複節點)
- hadoop動態摘除節點Hadoop
- 查詢陣列裡資料刪除和增加的方法陣列
- 二分搜尋樹系列之[ 節點刪除 (remove) ]REM
- 二分搜尋樹系列之「 節點刪除 (remove) 」REM
- 13. O(1)時間刪除連結串列節點
- drools動態增加、修改、刪除規則
- Hadoop 叢集角色和節點數規劃建議Hadoop
- Hadoop-HA節點介紹Hadoop
- 節點操作(刪除,複製)/案例1:刪除留言板的留言 /案例2:動態生成表格
- 安裝 Hadoop:設定單節點 Hadoop 叢集Hadoop
- JZ76 刪除連結串列中重複的節點
- layer彈框刪除ztree節點非阻塞問題解決
- 0011 刪除連結串列的倒數第N個節點