目录
收起
一、HBase集群增加节点
二、HBase集群删除节点
三、HBase集群NN无法调起问题汇总
1、Journal Storage Directory /tmp/hadoop/dfs/journalnode/mtcluster not formatted ; journal id: mtcluster
一、HBase集群增加节点
添加新节点,在NN的web页面中可见dn节点的变化
第一步:将新节点的主机号,追加到所有节点的hosts文件和slaves文件中;
第二步:在名称节点上,调用节点刷新命令:hadoop dfsadmin -refreshNodes
第三步:在新节点上,调起datanode进程:hadoop-daemon.sh start datanode
第四步:设置负载均衡:hdfs balancer -threshold 在集群任意节点执行即可,参数数值5表示集群内所有节点存储百分比差距要在5%以内
第五步:增加HBase分区:将新节点主机号添加到所有节点的regionservers文件中
第六步:在新节点上调起regionserver进程:hbase-daemon.sh start regionserver
二、HBase集群删除节点
设置exclude-slaves文件,刷新节点,slave03节点变为退役状态
第一步:下线HBase分区服务器:在新节点执行:graceful_stop.sh slave03 这里slave03为新节点
第二步:在hdfs-site.xml文件中添加exclude-slaves配置
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/etc/hadoop/exclude-slaves</value>
</property>
并在所有老节点中添加exclude-slaves文件,并在其中加入新节点的主机号
第三步:在NN节点调用节点刷新命令:hadoop dfsadmin -refreshNodes
第四步:清理新节点信息,将slaves和exclude-slaves文件中的节点信息删除,在执行刷新命令
这里有一个注意的地方
当在hdfs-site.xml中设置了exclude-slaves文件后,需要重启集群才有效
三、HBase集群NN无法调起问题汇总
1、Journal Storage Directory /tmp/hadoop/dfs/journalnode/mtcluster not formatted ; journal id: mtcluster
关闭集群后,我们再次开启集群,发现每个master节点都无法调起NN进程来。日志给出“Journal Storage Directory /tmp/hadoop/dfs/journalnode/mtcluster not formatted ; journal id: mtcluster”这样的提示,大致就是集群的journalnode进程出现了问题。
那什么是journalnode进程呢?
“两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。”这是来自网络上的参考。
那么可以判断,可能是关闭集群的时候,各个journalnode进程没有做好同步,导致我们启动集群时,两个NN无法完成元数据的同步,导致NN进程无法调起。
这里给出解决方法:在设置了journalnode进程的节点上,分别开启journalnode进程(当前状态,节点上其他进程停止),执行:hadoop-daemon.sh start journalnode; 紧接着,在一个NN节点上执行hdfs namenode -initializeSharedEdits,对journalnode进程进行初始化;在关闭所有journalnode进程,重新开启集群即可看到NN进程。
这里给出参考链接: