• Hadoop动态加入/删除节点(datanode和tacktracker)


    大体,正确的做法是首选的配置文件,然后开始详细机对应的进程/停止操作。

    网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置。

    总的来说加入/删除DataNode和TaskTracker的方法很相似,仅仅是操作的配置项和使用的命令有微小差异。


    1. DataNode

    1.0 配置文件

    在master/namenode下改动配置文件conf/mapred-site.xml。
    关键參数dfs.hosts和dfs.hosts.exclude。

    注意:不同hadoop版本号的配置文件规划不太一致!

    详细參考相关版本号的hadoop官方文档的cluster setup部分。

    http://hadoop.apache.org/docs/ 点击同样或相近版本号。

    上面的说法是在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 -refreshNodes  
    3,在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><span style="font-family: Arial, Helvetica, sans-serif;">.hosts</name></span>
    		<value>/opt/hadoop/conf/tasktracker-allow.list</value>
    	</property>
    	<property>
    		<name><span style="font-family: Arial, Helvetica, sans-serif;">mapred</span>.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 -refreshNodes  
    3。在slave上重新启动tasktracker进程:
    hadoop-daemon.sh start tasktracker  
    PS:假设之前没有关闭该slave上的tasktracker进程。须要先关闭再又一次启动。


    原载于http://blog.csdn.net/yanxiangtianji

    转载请注明出处

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    window.open跨页面传输
    history对象
    类vr特效的360度全景
    移动端图片滑动
    图片拼图
    20180808 考试记录
    [jzoj 5770]【2018提高组模拟A组8.6】可爱精灵宝贝 (区间dp)
    20180806 考试记录
    [luogu2319 HNOI2006] 超级英雄 (匈牙利算法)
    [luogu2679] 子串 (多维dp)
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4856734.html
Copyright © 2020-2023  润新知