**
hbase启动常见问题
**
使用xshell连接5台虚拟机,使用具有root权限的用户登录进行操作,我的是admin
-
使用date命令观察集群时间是否同步,若时间相差在1分钟以内,则无需同步,若相差的时间>1minutes则需使用以下命令:
su - root
date -s “2022-4-20 19:43:20”
hwclock -w -
启动zookeeper(5台主机都需要启动),使用如下命令:
zkServer.sh start #启动zookeeper的命令
zkServer.sh status #查看zookeeper的状态
5台主机要观察leader的选举状态,若出现4台follower,1台leader则启动成功
若没有选举状态正确,解决方案如下所示:
①查看日志zookeeper.out文件
②检查配置文件是否设置正确
cat ~/zookeeper/data/myid
cat ~/zookeeper/zookeeper-3.4.9/conf/zoo.cfg
cat /etc/hosts
③pid文件找不到错误
zookeeper中数据不同步,初始化zookeeper.
cd zookeeper/
rm -rf logs
cd data
rm -rf version-2 zookeeper-server.pid
重新创建新的目录:
mkdir ~/zookeeper/logs
重新启动zookeeper -
启动hadoop集群
在主机1中启动集群:start-all.sh
在主机2中启动Resourcemanager:yarn-daemon.sh start resourcemanager
如果出现进程丢失的问题的 解决方案:
①查看日志,分别去到丢失进程主机中查看
cat ~/hadoop/hadoop-2.7.3/logs/xxxxxx.log
②检查相关配置文件
cat ~/hadoop/hadoop-2.7.3/etc/hadoop/xxxx
③试试单独启动进程
namenode:hadoop-daemon.sh start namenode
datanode:hadoop-daemon.sh start datanode
resourcemanager:yarn-daemon.sh start resourcemanager
nodemanager:yarn-daemon.sh start nodemanager
zkfc:hadoop-daemon.sh start zkfc
journalnode:hadoop-daemon.sh start journalnode
④查看是否是元数据信息不一致导致
cat ~/hadoop/name/current/VERSION文件中的clusterID的值
是否与datanode节点的clusterID的值是否相同。 cat ~/hadoop/data/current/VERSION文件中的clusterID的值
如果不相同,那么需要将datanode中的clusterID的值进行更改为namenode的值
⑤重新格式化hdfs
停止集群:stop-all.sh
删除hdfs中的相关数据:
cd ~/hadoop/
rm -rf name data journal tmp
mkdir name data journal tmp
启动主机3,4,5的journalnode进程
hadoop-daemon.sh start journalnode
在主机1执行格式化namenode操作:
hadoop namenode -format
在主机1将格式化之后name目录远程同步给到主机2
scp -r ~/hadoop/name admin@Cluster-02:/home/admin/hadoop
在主机1中执行格式化zkfc操作
hdfs zkfc -formatZK
按照提示输入Y
重启集群。
在主机1中启动集群:start-all.sh
在主机2中启动Resourcemanager:yarn-daemon.sh start resourcemanager -
查看主备的选举结果
hdfs haadmin -getServiceState name-1
hdfs haadmin -getServiceState name-2
要能够分别看到active和standby两种状态。如果看不到相应状态:
①查看namenode是否丢失
②如果两种状态都是standby状态,可以手动修改:
hdfs haadmin -transitionToActive --forcemanual name-1
③报错的情况
重新格式化zkfc操作。
④防火墙
关闭每台主机的防火墙。
systemctl stop firewalld.service
systemctl disable firewalld.service -
启动hbase集群
在主机1中进行:start-hbase.sh
如果丢失进程:
①查看日志:
cat ~/hbase/logs/xxxx.log
②试试单独启动进程
master:hbase-daemon.sh start master
regionserver:hbase-daemon.sh start regionserver
③检查一下配置文件
cat ~/hbase/hbase-1.2.3/conf/hbase-env.sh
cat ~/hbase/hbase-1.2.3/conf/hbase-hdfs.xml
④检查hadoop集群进程 -
使用Hbase
任意节点进行。
启动hbase命令行工具:hbase shell
查看表的列表:list
创建表:create ‘testTable’,‘f1’,‘f2’
添加数据:put ‘testTable’,‘r1’,‘f1:c1’,“zhangsan”
查询表:scan ‘testTable’
删除表:
disable ‘testTable’
drop ‘testTable’

本文详细介绍了在启动Hadoop和HBase集群时可能遇到的问题及解决步骤,包括时间同步、Zookeeper选举、HDFS元数据一致性、防火墙设置等关键环节,旨在帮助用户顺利启动和管理大数据集群。
655

被折叠的 条评论
为什么被折叠?



