HADOOP添加与删除节点

一、如何添加节点?

大概配置思路:(转载于https://blog.csdn.net/czz1141979570/article/details/86712881

1、在新节点中进行操作系统的配置,包括主机名配置,防火墙,网络,免密登陆和安装JDK等

2、在所有的节点的/etc/hosts文件中增加新节点

3、把namenode的有关配置文件复制到该节点

4、修改master节点的slaves文件,增加该节点

5、单独启动该节点上的datanode和NodeManager

./sbin/hadoop-daemon.sh start datanode
./sbin/yarn-daemon.sh start nodemanager

6、运行start-balancer.sh进行数据负载均衡操作

./bin/start-balancer.sh
1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
./bin/start-balancer.sh -threshold 5
3)设置balance的带宽,默认只有1M/s
(也可通过命令设置:hdfs dfsadmin -setBalancerBandwidth 20971520)
<property>
  <name>dfs.balance.bandwidthPerSec</name> 
  <value>1048576</value> 
  <description> 
    Specifies the maximum amount of bandwidth that each datanode  
    can utilize for the balancing purpose in term of  
    the number of bytes per second.  
  </description>
</property>

具体操作请参考:https://www.cnblogs.com/skyl/p/4854654.html

二、如何删除节点?

第一次删除节点,直接删掉HADOOP节点,之后才想起来hbase也要移除,先移除hadoop再移除hbase,导致出现Hmaster启动失败,META表找不到问题(org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop. hbase. NotServingRegionException:hbase:meta,,1 is not online on nn0-eth0,16020),找了好久没找到解决方案,最后猜测应该是hbase找不到之前存在hdfs里面的region信息。最后将集群节点恢复才解决问题。

因此,删除节点不能马虎,稍不留神以前的数据就GG了,经过对比网友的解决方案,最终选用如下方案执行:

移除顺序是,先移除hbase的regionserver等服务,再移除hadoop的DataNode。而新增的顺序相反,先新增datanode,再新增regionserver。

具体实现方案如下:

对于HBASE:

此链接比较详细:http://shitouer.cn/2013/03/hadoop-or-hbase-cluster-remove-nodes/

具体执行比较简单,直接在Master上执行./bin/graceful_stop.sh hostname命令即可,最后在hbase shell中执行负载均衡:

balance_switch true。

对于Hadoop:

1.集群配置,设置excludes路径
   修改 Namenode上etc/hadoop/hdfs-site.xml文件

<property>
  <name>dfs.hosts.exclude</name>
  <value>/hadoop2.7.2/etc/hadoop/excludes</value>
  <description>Names a file that contains a list of hosts that are
  not permitted to connect to the namenode.  The full pathname of the
  file must be specified.  If the value is empty, no hosts are
  excluded.</description>
</property>

2.确定要删除的节点

在第一步指定的路径下,新建excludes文件,将需要移除的主机名写入,一行一个。

3.强制重新加载配置

[ws@master hadoop]# ./bin/hadoop dfsadmin -refreshNodes

4.查看执行状态

可通过在hadoop网页(http://NameNodes:50070)上查看datanode状态,也可以通过如下命令查看:

[ws@master hadoop]# ./bin/hadoop dfsadmin -report

正在执行Decommission,会显示:Decommission Status : Decommission in progress

执行完毕后,会显示:Decommission Status : Decommissioned

5.备注

等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令,如:./hadoop-daemon.sh stop datanode,几分钟后,节点将从Decommissioned进入Dead状态。

登录该节点,若还有其他进程,可手动关闭。

一旦完成了机器移除,它们就可以从excludes文件移除了。

记得从NameNode的excludes文件及slaves文件中去掉已经移除的主机名。

要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们。

6.重新加入删除的节点

1).在master的excludes文件中删除相应节点IP
2).在slave上重启datanode和nodemanager进程:hadoop-daemon.sh start datanode  yarn-damon.sh start nodemanager
3).在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes

发布了22 篇原创文章 · 获赞 2 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览