增删节点 数据迁移
一、所有事情开始之前,先要备份好cloudera manager的数据库,以及hadoop集群中的一些组件带的数据库。这里保存了很多元数据,像hive这种丢了很麻烦的。
二、如果需要换nameNode的存储目录
1、备份nameNode原始数据
cp -r /ddhome/dfs/nn /ddhomebak/
#Hive Metastore NameNodes #未找到该命令(刷新hive的hdfs设置)
重启后,如果有数据问题,则会hdfs会进入安全模式。可以使用下面这个命令接触。
实际过程中还报了一个:不能写入temp/.XXX目录的一个错误。实际就是安全模式无法写入。
sudo -uhdfs hdfs dfsadmin -safemode leave
切换数据存储目录 需要手动把数据文件复制过去
cp -r /ddhome/dfs/ /home/hdfs/
cp -r /ddhome/dfs/dn /home/hdfs/dfs
cp -r /ddhome/dfs/dn /ddhome/dfs_bak
三、数据整理(根据需要进行)
1、先把数据备份成三分
hadoop dfs -setrep -w 3 -R /
2数据均衡
1.对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,
hdfs dfsadmin -setBalancerBandwidth 67108864
2.默认balancer的threshold为10%,即各个节点存储使用率偏差不超过10%,我们可将其设置为5%;然后启动Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可
#./start-balancer.sh -threshold 5
hdfs balancer -threshold 1 #这个是机器资源使用率的差额,如果设置太小,可能不会迁移
#详细使用请参照下面这篇博客
=============================================================================
四、hadoop组件迁移:
1、可以有多个主节点的主键,可以先添加好备用的主键节点。然后重启,等备用节点完全同步了主节点之后,就可以停止老的主几点了。会自动切换到新的主节点上。这个时候就可以删除老的主节点了。
zk、hbase、hdfs、yarn、hive(Hive Metastore Server和HiveServer2都可以)。
2、一些机器不相关的组件,可以直接删除了,加入新机器之后,直接在新的节点上重新装这部分组件。
典型的有yarn、spark on yarn、hue、
3 比较难迁移的就是hdfs。因为它涉及到真正的数据存储在哪个位置。
需要一个节点一个节点的:停止---数据同步到其他节点----删除这节点。
这里要注意:nameNode角色迁移,删除老节点之后,整个hdfs就锁死不能进行操作了。因为删除该节点之后,hdfs没有自动进行配置修改,它任然是高可用模式,你做什么操作 它都提示错误不能进行。需要手动到hdfs的配置里面把高可用相关的配置全部去除掉。然后重新添加新节点上的nameNode。可以在这个时候直接进行高可用部署方式。