目录
一 .启动hbase前需要启动的进程
二 . 判断是否启动成功
三 . 缺少进程的原因
四 . 拥有进程却无法正常使用的原因及其解决方法
一 .启动hbase前需要启动的进程
由于Hbase的成功启动依赖于zookeeper和hadoop,先将zookeeper和hadoop启动
cd $ZOOKEEPER_HOME #$ZOOKEEPER_HOME替换为你的zookeeper所在目录
bin/zkServer.sh start
cd $HADOOP_HOME #$HADOOP_HOME替换为你的hadoop所在目录
sbin/start-dfs.sh
sbin/start-yarn.sh
二 . 判断是否可以启动成功
由于测试时使用的是三台虚拟机Hadoop1,Hadoop2,Hadoop3,其中Hadoop1,Hadoop2分别为master,backup-master所以需确保在Hadoop1虚拟机的下执行
cd /opt/module/app/hbase #/opt/module/app/hbase 替换为你的hbase所在目录
bin/start-hbase.sh #启动集群的hbase
注意:启动前先将hbase conf目录下的配置文件hbase-env.sh,hbase-site.xml,regionservers(设置regionserver),backup-masters(设置备用master)根据hbase的不同版本如1.x,2.x进行配置
若是成功启动hadoop1进程应该如下:
hadoop2同样有HMaster与HRegionServer,Hadoop3有HRegionServer
若进程缺少则说明配置文件配置出错
三 . 缺少进程的原因
若配置文件配置无问题:
1. zookeeper未正常启动,虚拟机可能显示zookeeper进程但并未真正启动zookeeper集群,可通过进入zookeeper安装目录下后使用代码
bin/zkServer.sh status
判断zookeeper状态,如果三台虚拟机分别为follower,follower,leader则启动成功
2. 内存不足导致启动失败:
在hbase-env.sh配置文件中需配置hbase占用内存大小,如果虚拟机的物理内存不足会导致无法启动,此时需要查看虚拟机剩余内存和分配给虚拟机的内存大小和配置文件hbase-env.sh的内存分配大小。
使用代码free -h查看剩余可以使用的内存
hbase-env.sh配置:
若free大小小于配置所给大小,需要在虚拟机设置调整内存大小,或者可以将配置分配的内存降低
虚拟机设置:
四 . hbase拥有进程却无法正常使用的原因及其解决方法
当进程拥有之后并不一定意味Hbase可以正常使用,需要先进入hbase测试基本功能
输入hbase shell进入hbase使用list_namespace查看hbase的表空间:
若namespace长时间卡住不动或者报错则可能是出现以下三个问题:
1. hadoop安全模式未退出:
使用命令测试hadoop的安全模式状态:
hdfs dfsadmin -safemode get #应显示为OFF
若是显示为ON需要手动关闭:
hdfs dfsadmin -safemode leave #退出安全模式
2. 三台虚拟机时间未同步:hbase集群要求虚拟机通间误差在10s以内
可在终端使用date查看各个虚拟机时间,若差距过大根据实际情况进行同步
3. zookeeper下的hbase元数据目录出现损坏,可能是由于更新hbase版本等问题引发
可通过清除数据进行恢复(谨慎,新手可选)
hadoop fs -rm -r /hbase # 删除 HBase 元数据目录
cd /$ZOOKEEPER_HOME #进入zookeeper安装目录
bin/zkCli.sh
ls /
deleteall /hbasequit
最后重启虚拟机开启进程进入hbase使用list_namespace查看表空间:
若显示成功则Hbase集群搭建成功。