今天帮室友解决了这个问题,对于我个人来说感触还是蛮深刻的,毕竟这个东西真的弄得要崩溃了,本想着去找老师问问,但是又想自己再挣扎一下下,果然成功了,这简直就像是中了彩票一样哈哈哈哈~
====================== 接下来算是我个人的一些小总结吧=========================
先说明一下:我有三台机器:hadoop01、hadoop02、hadoop03
如果你前面的hadoop以及Zookeeper没有问题的话,建议最好是按着我的步骤来,我会罗列地比较详细!!!
Step1:在hbase的conf文件中找到hbase-env.sh这个文件并添加如下命令:
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true
同时,在hbase的conf文件中找到hbase-site.xml这个文件同时修改或者添加在<configuration>中:
<property> <name>hbase.rootdir</name> <value>hdfs://访问hdfs的ip地址:对应的端口号/hbase</value> </property>
(ps:在写这个value时注意与之前在hadoop当中的core-site.xml中的那个hdfs地址对应,同时将这个节点上的hbase进行分发一下,就是传给其他节点!!!)
Step2:删除HDFS当中存在的Hbase:
hadoop fs -rm -r /hbase
Step3:删除Zookeeper当中之前的Hbase元数据信息:
①停止Hbase服务:
stop-hbase.sh
(这个命令根据自己的情况,看有没有配置环境变量,或者有没有写脚本,灵活变通一下,只要能把这个服务关了就行,可以通过jps查看一下!!!)
②进入Zookeeper服务中:
[root@hadoop01 ~]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[hbase, zookeeper] #如果有hbase,继续执行下一步,没看到的话输入 quit 回车
[zk: localhost:2181(CONNECTED) 1] deleteall /hbase
[zk: localhost:2181(CONNECTED) 1] quit
Step4:停止zookeeper所有服务,停止hadoop的所有服务
#使得在每一个节点中通过使用“jps”命令,只有一个jps存在即可!!!
Step5:删除格式化生成的data文件:
rm -rf /opt/software/hadoop3.3.0/data #每一个节点都要执行该操作
Step6:重新格式化:
hdfs namenode -format
Step7:启动每个节点上对应的所有服务,然后先启动Zookeeper服务:
[root@hadoop01 ~]# zookeeper.sh start
[root@hadoop01 ~]# zookeeper.sh status#查看启动状态,保证有一个leader,两个follower即可
然后再启动Hbase服务!!!
Step8:进入Hbase服务当中:
hbase shell
创建表就不会报错啦~~~
快去试试,相信你也可以成功!!!
(个人感想:这个东西真有趣,下次不想再弄了QWQ)
版权归原作者 名叫栗子 所有, 如有侵权,请联系我们删除。