安装分布式Hbase 边做边记

时间:2024-05-20 14:52:52

要虚拟机安装分布式的Hbase,之前只装过伪分布式的,这次跟着帖子安装,遇到问题有记录查看起来也比较方便。

之前写的博客给了参考的帖子,这次又找了一些,挑一个详细的跟着做吧。

先是下载Hbase,要Hadoop安装对应版本的Hbase,https://blog.****.net/sunny05296/article/details/54089194

我的Hadoop是2.7.6,1.2版本以后的Hbase都可以,这里选个老版本,资料多点。

http://mirrors.shu.edu.cn/apache/hbase/ 下载hbase-1.2.11-bin.tar.gz

我拷的这个已经安装好Hadoop的虚拟机,可以直接把东西从主机拷过来,我记得应该要安装个什么软件。不过人家已经搞好了,我这里就不用搞了,可以在主机下好,直接粘贴过来了。

准备按照这个帖子做https://www.cnblogs.com/520playboy/p/9655914.html,其他都是单节点、伪分布式,分布式都说了。但我怕有的地方搞混了,还是直接找个分布式搭建的教程来看吧。以上面这个帖子为主,https://www.cnblogs.com/lzxlfly/p/7221890.htmlhttps://blog.****.net/shisibushiba/article/details/50824307这俩帖子为辅,开始安装吧。

先把三台虚拟机机器都打开,这些机器之前Hadoop,ssh等都没问题了,50070,8088也能顺利打开,把Hbase安装包也顺利复制到虚拟机上去了。因为我的IP一直在变,开始之前先检查下三台机器的网络问题。ok,网络一切如旧,没有问题。

首先解压Hbase,Hadoop安装在HOME/meng下面(手动找的时候就是HOME下面,但是终端粘贴的时候要写home/meng),Hbase就也安在这里吧。指令是: tar -xvzf hbase-1.2.11-bin.tar.gz -C /home/meng/   我把压缩包也拷到那个要安装的文件夹/home/meng里,然后在这个文件夹里开个终端,用这个指令解压了。

下一步是配置hbase环境变量vim /etc/profile  里面是profile文件里本来JDK Hadoop的路径。这个应该只要主节点配置就行了吧,其他俩节点不知道要搞不。

添加

export HBASE_HOME=/home/meng/hbase-1.2.11 

export PATH=$HBASE_HOME/bin:$PATH

安装分布式Hbase 边做边记

修改完之后,保存关掉,然后执行 source /etc/profile,让配置生效。

额,source之后,名户名的绿色字变白了,我觉得应该是没有生效,前面加了sudo,直接说source无效。https://blog.****.net/qq_35571554/article/details/82850563 用这个帖子的方法,把source加到 .bashrc里面,结果字一直是白的了,关了重开终端还是这样,吓死,删掉之后又正常了,不知道咋回事。不管了,先下一步吧。

创建目录tmp,在Hbase文件夹下面。

配置hbase-env.sh,在conf/env.sh,修改下面俩选择,(下面所有配置文件都在Hbase1.2.11/conf文件夹里)

# Tell HBase whether it should manage it's own instance of Zookeeper or not.export HBASE_MANAGES_ZK=false 默认是true   书上说选择TRUE是直接用自带的zookeeper。但是有的帖子用,有的人不用。还有直接没有配置的,我也先不用好了。(下面发现还是要设定为true,书上也是用自带的zookeeper)

安装分布式Hbase 边做边记

接下来配置hbase-site.xml,我发现有配置zookeeper,那上面那个配置文件还是设定为TRUE好了。

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://ubuntu100:9000/hbase</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>ubuntu100</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/home/meng/hbase-1.2.11/tmp</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>ubuntu100,ubuntu101,ubuntu102</value>
    </property>
    <property>
        <name>hbase.zoopkeeper.property.dataDir</name>
        <value>/home/meng/zookeeper</value>
    </property>
    <property>
        <name>zookeeper.session.timeout</name>
        <value>60000000</value>
    </property>
    <property>
        <name>dfs.support.append</name>
        <value>true</value>
    </property>
</configuration>
 

接下来配置regionservers,其实就是配置master的小弟,删掉原来的localhost写上我的三个hostname

ubuntu100
ubuntu101
ubuntu102

接下来那个教程上就只剩移动和启动了,但是书上还有其他帖子上还有版本适配这一步,我也搞一下吧。(本来按照那个教程先做了最后一步,把Hbase的包移动到另外俩节点上了,然后发现这个jar包还没转移,先把jar包搞好,之前移动的Hbase文件夹先删了,一会再重新复制过去)

发现我的Hbase lib文件夹下面的Hadoop jar包是2.5.1的,我的Hadoop是2.7.6的。有的帖子说单机的没问题,但是分布式的不适配jar包,看起来就像挂掉一样,那我还是搞一下吧。

安装分布式Hbase 边做边记

就下面这些需要换的,https://blog.****.net/huangzy1975/article/details/79270499这个帖子说hadoop-client-2.7.6.jar这个包Hadoop里面也没有,需要自己下,等会注意下。

按照书上开始修改。先把Hadoop里面的jar包挪过来。

[email protected]:~/hbase-1.2.11$ ls lib | grep '^hadoop-' |\
> sed 's/2.5.1/2.7.6/' | \
> xargs -i find /home/meng/hadoop-2.7.6 -name {} | \
> xargs -i cp {} /home/meng/hbase-1.2.11/lib/
这里要在Hbase的那个文件夹里面开终端,\的意思是 https://zhidao.baidu.com/question/1607553085588164187.html

安装分布式Hbase 边做边记

然后用下面的指令删除掉原来的2.5.1版本的jar包。还是在Hbase那个文件夹里开终端。

[email protected]:~/hbase-1.2.11$ rm -rf lib/hadoop-*2.5.1.jar
删除完了一对照,果然没有cilent这个包,自己下去吧。https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client/2.7.6 在这个网站搜要下的文件全名,找到了之后,在下图file那行点击下载那个25kb的jar包。

安装分布式Hbase 边做边记

全部搞完,确定不再修改Hbase那个文件夹之后,用scp 命令把配置好的hbase程序分发到各个机器上。scp指令要加-r才能移动文件夹。不然报错: not a regular file

scp -r /home/meng/hbase-1.2.11 ubuntu101:/home/meng
scp -r /home/meng/hbase-1.2.11 ubuntu102:/home/meng

转移了很长时间,非常多文件,有一分钟往上了。把两个都转移完毕。可以看到hbase-1.2.11在另外两个机子也有了,本来我之前看到要在另外俩机子手动创hbase下面的tmp文件夹,不过整个Hbase都移动过去了,tmp也有了,用不着自己建了。

全部弄完了,接下来开始启动,额,出错了。在这个文件夹下面也开不了。没有这个指令。

[email protected]:~/hbase-1.2.11/bin$ start-hbase.sh
start-hbase.sh: command not found


我去,知道为啥了,就算在文件夹下面也不能直接开,必须加./在前面才行。https://blog.****.net/weixin_38233274/article/details/80206211 参照这个帖子做的。

开启之后几个节点的状况。主节点:

安装分布式Hbase 边做边记

另外俩节点:

安装分布式Hbase 边做边记

安装分布式Hbase 边做边记

成功之后登陆http://ubuntu:16010 也能看到,不过好像Hbase版本不一样,这个端口号也不一样。

安装分布式Hbase 边做边记