背景
起因是这学期学校里开了nosql相关的课,要完成一个Hbase相关的作业,我是按部就班的跟着尚硅谷那边的大数据路线学习,刚学到Hadoop,但作业也得完成,好在不是很难,要先安装zookeeper,再安装Hbase,进行一些简单的操作就行了.
导火索
安装zookeeper时,尚硅谷的老师又写了一个集群的控制脚本zk.sh,放在/atguigu/home/bin下了,我一直用的root用户,主要是也没什么重要数据,更方便,按理说我应该把它放进/root/bin下,但我忽然发现之前学hadoop时,把myhadoop.sh和jpsall这两个脚本放在/usr/bin下了,当时没太分清,我这时就想着移动一下,把这两个脚本移动到/root/bin,方便管理,但我mv指令有点忘了,不小心把整个/usr/bin弄到/root/bin下了,这时候啥指令都执行不了了,重启也开不了机了,因为这些指令全在/usr/bin放着呢,Linux也没Ctrl+Z,我就尝试进入bios,在虚拟机的电源那里进去了,但还是解决不了,无奈,坏的这台是hadoop102,我就删除了,把hadoop103克隆一个,把hostname和集群的机器的编号改一下,我觉得也没啥问题,主要是hadoop102,hadoop103都是来源于同一个模板虚拟机hadoop100,学的时候主要在hadoop102上修改,再通过xsync同步到其他的机器上,所以只有一些参数不同,这次改完之后我觉得可以了,并且测试的新的Hadoop102上的myhadoop.sh脚本,启动没问题,但我没想到,事情才刚刚开始,,,
Hbase安装风云
我按照尚硅谷的视频安装HBase之前安好了zookeeper,启动测试也没问题,接着就开始按部就班的安装Hbase,这个安装起来步骤比较少,过程不必多说,网上都有,但启动时却出现了意外,hadoop102中应该有的Hmaster没有,或者说闪退更恰当一点,一开始有,后来没有,
我又是google,咨询ChatGPT还有newbing之类的,主要可能有以下几个原因
- 版本不兼容
- 防火墙没打开
- Hadoop的core-site.xml和Hbase的hbase-site.xml的路径配置问题
- zookeeper对Hbase的影响
解决问题
一个一个看,我用的各个版本是Hadoop3.1.3和Hbase2.4.11和zookeeper3.5.7,我去Hbase官网查了,是兼容的,所以排除这个
再看第二个,防火墙一直都是打开的,这个也过了
再一个就是两个文件的路径配置问题,都是8020,没问题,又去zookeeper的主目录下面去看,有一个/hbase的目录,网上看缓存也有影响,删除了之后还是不行,接着又试了其他一些办法,后来又重启之类的,也不行,这时候我已经折腾了两个小时了,到吃午饭了,本来不打算吃了,有点饿了,还是去吃吧。
最终解决
我这时候才想起来看日志,真是后知后觉,如图所示,Hbase有没有问题,我现在还不敢保证,但Hadoop一定有问题,它连接不上啊,而Hbase依靠Hadoop,就算Hbase有问题,还没到出问题的时候,
这时候我打开hadoop102:9870,显示错误,原来根在这呢,主要是之前用脚本启动时,看着也没什么问题,没想到不能连接,
这时候我忽然看到了这句话才恍然大悟,赶紧格式化,Hadoop102:9870能进了,里面也有一个/hbase文件夹,结果jpsall执行时依然没有hmaster,还是不气馁,再接在励,继续看日志,
似乎是什么版本,节点的问题,我这时又看到刚才的话,我忽然想起来刚才格式化时我没有删除data和logs文件夹,我这次删除了再格式化试一试,
终于成功了,真不容易,要不是重置一下虚拟机也不至于费这么多功夫,**另外,以后出了bug以后我一定先看日志。**这次也有不少收获,得到了不少新知识点,也增强了bug调试能力