Hadoop 委任和解除节点(DataNode和NodeManager) Hadoop 集群管理员经常需要向集群中添加或者移除节点。通常情况下,节点同时运行DataNode和NodeManager。

来源:互联网 发布:中国人工智能技术发展 编辑:程序博客网 时间:2024/05/17 06:09

Hadoop 委任和解除节点(DataNode和NodeManager)

Hadoop 集群管理员经常需要向集群中添加或者移除节点。通常情况下,节点同时运行DataNode和NodeManager。因而两者可以同时委任或移除。

委任一个新节点只需要在修改下配置文件,并把配置文件复制到新的节点就行了。但是这也存在着一些问题: 
(1)随便允许一台机器以DataNode身份连接到NameNodes是不安全的,因为机器很可能访问未授权的数据。 
(2)这种机器并非正真的DataNode,不在集群的控制之下,随时可能宕机,导致数据丢失。

Hadoop官方文档给出了委任和解除节点的具体配置方法 
我的集群是Hadoop-2.7.2。如果版本不同,可以查看相应版本的官方文档http://hadoop.apache.org/docs/ 
一,委任新节点 
被允许连接到namenode的datanode放在一个文件中的,文件名由dfs.hosts属性指定,该文件的每一行制定一个datanode的网络地址。类似的,可以连接到resourcemanager的nodemanager也在一个文件中指定,文件名由yarn.resourcemanager.nodes.include-path指定。因为datanode和nodemanager守护进程运行在同一个节点,所以可以指定同一个文件。这个文件不同于slaves文件,前者供namenode和resourcemanager使用,用于决定可以连接到哪些工作节点,Hadoop控制脚本使用slaves文件执行面向整个集群的操作,比如重启集群。Hadoop守护进程从不使用slaves文件。 
(一)委任节点 
1,在namenode节点的$HADOOP_HOME/etc/hadoop/hdfs-site.xml中添加dfs.hosts属性。在resourcemanager节点的yarn-site.xml中添加yarn.resourcemanager.nodes.include-path属性。 
这里写图片描述
这里写图片描述
value为文件的绝对路径。 
2,创建include文件 
在namenode节点和resourcemanager节点创建include 
这里写图片描述 
3,添加新节点步骤 
(1)配置创建include文件,在文件中添加地址。 
(2)运行以下命令,将经过审核的datanode更新至namenode信息

hadoop dfsadmin -refreshNodes 
  • 1

(3)运行以下命令,将经过审核的nodemanager更新至resourcemanager信息

yarn rmadmin -refreshNodes 
  • 1

(3)更新slaves文件,与include相同 
(4)启动新的datanode和nodemanager 
(5)通过网页界面检查是否成功更新

(二)解除节点 
1,若要解除一个节点,则该节点必须出现在exclude文件中。在namenode节点的$HADOOP_HOME/etc/hadoop/hdfs-site.xml中添加dfs.hosts属性。在resourcemanager节点的yarn-site.xml中添加yarn.resourcemanager.nodes.include-path属性。方法与之前相同 
2,创建exclude文件 
3,解除步骤 
(1)将要移除的节点添加到exclude文件中,不更新include文件。 
(2)运行以下命令,将经过审核的datanode更新至namenode信息

hadoop dfsadmin -refreshNodes 
  • 1

(3)运行以下命令,将经过审核的nodemanager更新至resourcemanager信息

yarn rmadmin -refreshNodes 
  • 1

(4)开始解除过程,解除的DataNode会把快信息复制到其他DataNode上。 
(5)解除完毕后,从include文件中将这些节点移除。并运行

hadoop dfsadmin -refreshNodes yarn rmadmin -refreshNodes 
  • 1
  • 2

(6)从slaves文件移除节点。

注意:判断一个nodemanager能否连接resourcemanager的条件是:仅当 
nodemanager出现在include文件且不出现在exclude文件。 
HDFS 规则不同。如下表 
这里写图片描述
如果未指定include或include为空,则意味所有节点都在include文件

这都是参照官方文档和《Hadoop权威指南》总结出的,有错请拍砖!

阅读全文
0 0