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

转载请注明出处

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

时间: 2024-12-29 07:04:08

Hadoop动态加入/删除节点(datanode和tacktracker)的相关文章

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

总的来说,正确的做法是优先通过配置文件,再在具体机器上进行相应进程的启动/停止操作. 网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置. 总的来说添加/删除DataNode和TaskTracker的方法非常相似,只是操作的配置项和使用的命令有微小差异. 1. DataNode 1.0 配置文件 在master/namenode下修改配置文件conf/mapred-site.xml. 关键参数dfs.hosts和dfs.hosts.exclude. 注意:不同hadoop版本的

Hadoop 2.6.3动态增加/删除DataNode节点

假设集群操作系统均为:CentOS 6.7 x64 Hadoop版本为:2.6.3 一.动态增加DataNode 1.准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode中.ssh目录中的authorized_keys和id_rsa 2.复制Hadoop运行目录.hdfs目录及tmp目录至新的DataNode 3.在新DataNode上启动hadoop ..sbin/hadoop-daemon.sh start datanode ..sbin/yarn-daemon

hadoop集群 动态添加或删除节点

在运行中的ambari hadoop集中中动态添加或删除节点 1. 下线hdfs节点 1) 下线datanode namenode节点上dfs.exclude文件,看配置文件怎么配置的,里每行添加一个服务器名,如我要下线server7,server8,server9,则如下: server7 server8 备注: 如果hdfs-site.xml没有找到dfs.hosts.exclude,那么就手动把下面内容加入到hdfs-site.xml中,然后把需要Decommission的机器写到文件/e

Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向

hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集群动态增加新节点 一.在新增节点配置运行环境 1.安装和其他节点相同的java环境,jdk版本要相同. 2.修改/etc/hosts配置文件,添加ip与hostname的对应关系并分发到集群各个节点. 3.关闭防火墙.相关软件工具的安装等. 4.配置ssh免密码登录,使新增节点和集群其他节点能实现免密码登录. 5.修改s

hdfs以及hbase动态增加和删除节点

一个知乎上的问题:Hbase的Region server和hadoop的datanode是否可以部署在一台服务器上?如果是的话,二者是否是一对一的关系?部署在同一台服务器上,可以减少数据跨网络传输的流量. 但不是一对一对的关系,首先,数据还hdfs中保存N份,默认是三分,也就是说数据会分布在三个datanode上,即使regionserver上只保存一个region,它也可以与三个datanode交互,更何况,一台regionserver可以保存多个region. 参考:https://www.

Hadoop 新增删除节点

1 新增Data节点 1.1 修改/etc/hosts,增加datanode的ip 1.2 在新增加的节点启动服务 hadoop-daemon.sh start datanode yarn-daemon.sh start nodemanager 1.3 均衡block start-balancer.sh 1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率 2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长 start

Hadoop 数据节点DataNode异常

转载自 :http://blog.csdn.net/gis_101/article/details/52679914 1.问题背景 操作系统:CentOS7 64位 Hadoop版本:Hadoop2.7.3 JDK:1.8.0_65 2.问题描述 使用start-all.sh脚本或者先后执行start-dfs.sh.start-yarn.sh脚本启动Hadoop后,通过jps命令检测DataNode节点进程发现有DataNode进程,数秒后DataNode进程莫名其妙"消失"了,只有J

JS动态增加删除UL节点LI

JS如何动态增加删除UL节点LI及相关内容. <ul id="ul"> <li id=1>11111111111111111<a href="javascript:del(1);">del</a></li> <li id=2 >22222222222222222<a href="javascript:del(2);">del</a></li>

0166 DOM 之 节点操作: 删除节点,删除留言案例,复制(克隆)节点,动态生成表格案例,创建元素的三种方式,innerHTML和createElement效率对比

1.1.1 删除节点 node.removeChild(child) // 此处的node指 父节点 node.removeChild() 方法: 从 node节点中删除一个子节点,返回删除的节点. <button>删除</button> <ul> <li>熊大</li> <li>熊二</li> <li>光头强</li> </ul> <script> // 1.获取元素 va