首先确保hadoop集群正常运行,还需要确认hadoop和hbase的适配版本,我的hadoop是3.3.2,hbase下的是2.4.11。

hadoop3集群部署

背景:

我的机子:10.0.2.4是node1(master),10.0.2.15是node2(slave),10.0.2.5是node3(slave),先配置node1.

hosts文件配置和ssh免密登录等问题看我之前搭建hadoop集群的内容,这里不再强调。

一、下载hbase

hbase2.4.11下载https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.11/  我是放到/opt/hbase目录,然后解压:

cd /opt/hbase
tar -zxvf hbase-2.4.11-bin.tar.gz

二、配置hbase

①配置环境变量,3台机器都要配置

vi /etc/profile

export HBASE_HOME=/opt/hbase/hbase-2.4.11
export PATH=$PATH:$HBASE_HOME/bin

source /etc/profile

②配置hbase-env.sh

cd /opt/hbase/hbase2.4.11/conf
vi hbase-env.sh

export JAVA_HOME=/opt/java/jdk1.8.0_321/
export HBASE_MANAGES_ZK=true
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true #必须加,否则运行hbase shell输入命令就报错

③配置hbase-site.xml

vi hbase-site.xml

  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>

    <property>
    <name>hbase.rootdir</name>
   <value>hdfs://node1:9000/hbase/hbase_db</value> 
   </property>

    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>

    <property> 
        <name>hbase.master</name>
        <value>node1:60000</value>
    </property>

  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node1,node2,node3</value>
  </property>

      <property>
         <name>hbase.zookeeper.property.dataDir</name>
         <value>/opt/hbase/zookeeper</value>
      </property>

④配置regionservers

vi regionservers

删除localhost,新增:
node2
node3

三、发送HBASE文件到slave

在node2 node3 创建/opt/hbase目录

scp -r /opt/hbase/hbase-2.4.11/ root@node2:/opt/hbase/
scp -r /opt/hbase/hbase-2.4.11/ root@node3:/opt/hbase/

四、启动集群

./opt/hbase/hbase-2.4.11/bin/start-hbase.sh  启动在node1机器

这时候在master机器敲jps

 

 在slave机器jps

 HQuorumPeer进程是使用内置zk就会有。

五、测试

启动没有问题的话,测试一下:

敲命令hbase shell,等它启动,然后敲list:

 如果能快速显示0 rows和查询时间则集群没有问题,通常有问题此处会超时或者报错。

最后如果需要关闭hbase,直接stop-hbase.sh很可能关不掉,这时候需要:

hbase-daemon.sh stop master
stop-hbase.sh

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐