集群间动态扩展和删除hdfs的datanode和hbase的regionserver

如果你既要增加节点,又要删除节点呢,

我推荐的顺序是:新增datanode,新增regionserver,停掉regionserver ,停掉datanode。

如果你单独的增加或者移出呢,顺序就是上面拆开的就行啦。

如果你新增机器呢,新增datanode,新增regionserver。

如果你减少机器呢,停掉regionserver ,停掉datanode。

所以演示的话呢,就来个全套,就是新增datanode,新增regionserver,停掉regionserver ,停掉datanode。

一、准备工作

新增的机器,提前安装好java,ssh免密登录,然后把好的机器上的从节点的安装包scp过来。

二、新增datanode节点

1。先把$HADOOP_HOME/etc/hadoop/slaves/etc/hosts , 都加上你加上的主机名。
在这里插入图片描述

2。 在你本机目录下,创建dfs.data.dir里面的value值得目录,如果这个dfs.data.dir里面的value值得目录底下有东西的话,确认没用,最好删了,删了!!!!删了!!!!,不然一会你会发现,你的clusterId会发生冲突,什么storageId冲突,block pool 编号不一样,等等等等。

3。进入bin目录 执行hadoop-daemon.sh start datanode

4。hdfs dfsadmin -refreshNodes 刷新一下

5。hdfs dfsadmin -report再查看是否添加进去了。

6。设置带宽,配置均衡器balancer,一般不在主节点上运行,以避免影响业务,可以有专门的balancer节点

hdfs dfsadmin -setBalancerBandwidth 1048576 

如果某个datanode的磁盘里用率比平均水平高出5%,Blocks向其他低于平均水平的datanode中传送list
start-balancer.sh -threshold 5

7。最后再查看一下,hdfs dfsadmin -report 完成。

三、新增RegionServer节点

0。把一台好的节点上的Hbase拷贝过来(配置文件以配置好的)
1。先把$HBASE_HOME/conf/regionservers/etc/hosts , 都加上你加上的主机名。
2。执行以下命令启动

hbase-daemon.sh start regionserver 

3。在新的节点上进入hbase shell
然后输入balance_switch true
过一会,你就会发现regions 已经负载均衡了。

四、hbase删除regionserver节点

执行命令

graceful_stop.sh regionser(主机名)

然后启动之后,就会自动让这个机器上的region分布到其他机器上去,然后自动下线,我看网上说,还需要像上面一样,执行一遍balance_switch true,但是我发现,其实那个graceful_stop.sh regionser已经自动帮你均衡了region,所以我们去shell里执行balance_true,也可。

五、hdfs安全删除datanode节点

千万不要直接输hadoop-daemon.sh stop datanode 这样可能,可能会导致数据块的丢失,强烈不建议datanode这样退役。

然后就是在excludes里面添加你要退役的节点即可。

整个流程大体如下:

编辑hdfs-site.xml

加入以下选项:

<property>
    <name>dfs.hosts.exclude</name>
    <value>/opt/hadoop/etc/hadoop/excludes</value>
 </property>

然后在这个路径下面,编辑excludes,在里面加入你要退役的节点,例如加上这个hadoop-dn-2。

如果你是HA模式的话,两个NN都要加,一定要两个NN都加哦~

然后输入hdfs dfsadmin -refreshNodes (记住,不用重启,不用重启服务,也别关掉datanode !!!)

这样你就会登陆主节点的50070端口,你会发现有一个节点的状态是Decommissioned in Process 这是后你

就静静地看着他会往不均衡的节点传输Block块,等传输好了后,你就会发现状态变更为Decommissioned

这时候你就可以安全下线datanode即可。

在这里插入图片描述

这样就可以啦,然后你就删除了。

最后,再次提醒顺序。新增datanode,新增regionserver,停掉regionserver ,停掉datanode。切记切记,年轻人们!!!!!

猜你喜欢

转载自blog.csdn.net/luanpeng825485697/article/details/85160004