暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

完全分布式HBase集群安装部署

原创 逆风飞翔 2022-12-15
1325

  主机信息:

IP

主机名

备注

192.168.39.15

master.hadoop.ljs

master

192.168.39.16

worker1.hadoop.ljs

worker1

192.168.39.17

worker2.hadoop.ljs

worker2

二、安装步骤

HBase集群运行需要jdk,所以安装之前三个机器先把jd安装好,免密码登录ssh也要做(master->master、master->worker1、master->worker2)免密都要做,这里我的hadoop和zookeeper是已经安装好的,版本分别是hadoop3.1.1、zookeeper3.4.6,这里就不再写他两个的安装了。

 

1.HBase的软件安装包可直接从官网下载,里面有所有版本安装包,地址如下:

    http://archive.apache.org/dist/hbase/

 我这里选择的是HBase2.4.1:

http://archive.apache.org/dist/hbase/2.4.1/hbase-2.4.1-bin.tar.gz

 

2.将hbase-2.4.1-bin.tar.gz包上传到master节点/data目录下,执行命令解压tar.gz文件:

tar -zxvf hbase-2.4.1-bin.tar.gz
mv hbase-2.4.1-bin  hbase241

 

3.需要修改conf目录下三个配置文件hbase-env.sh、hbase-site.xml、regionservers

   

    1).在hbase-env.sh添加以下内容,这个文件一般都是配置一些环境变量信息:

//指定jdk路径
export JAVA_HOME=/opt/jdk1.8.0_231    
 //指定hadoop路径
export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop  
//这里如果使用外部zk就为false,自带zk为true,这里我们使用已经安装的zooekeeper
export HBASE_MANAGES_ZK=false   

  

2) .在hbase-site.xml添加如下配置,这里我列的是最基本的分布式部署需要的配置项:

 <configuration>

<!--设置HBase表数据,也就是真正的HBase数据在hdfs上的存储根目录 core-site.xml

里一样<property>

        <name>fs.defaultFS</name>

        <value>hdfs://192.168.39.4:8888</value>

    </property>-->
 <property>
    <name>hbase.rootdir</name>
    <value>hdfs://db1:8888/hbase</value>
</property>
<!--是否为分布式模式部署,true表示分布式部署-->
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<!--zookeeper集群的URL配置,多个host中间用逗号-->
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>master.hadoop.ljs,worker1.hadoop.ljs,worker2.hadoop.ljs</value>
</property>
<!-- 本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默认设置成它下面的-->
<property>
    <name>hbase.tmp.dir</name>
    <value>/data/hbase241Data/tmp</value>
</property>
<!--HBase在zookeeper上数据的根目录znode节点-->
<property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase241</value>
</property>
<!--设置zookeeper通信端口,不配置也可以,zookeeper默认就是2181-->
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>
<!-- 使用本地文件系统设置为false,使用hdfs设置为true -->
<property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>
</configuration>

    这里最后一个配置项hbase.unsafe.stream.capability.enforce  ,如果不加上会报错:

 

 

   3 ).修改regionservers,也就是有几个regionserver,这里三个节点都加上:

master.hadoop.ljs
worker1.hadoop.ljs
worker2.hadoop.ljs

4.配置修改完毕,将整个目录拷贝到worker1、worker2节点即可,拷贝过去后,整个目录最起码要有可执行权限,一般改成755即可:

 scp -r /data/hbase241   worker1:/data/
 scp -r /data/hbase241  worker2:/data/

5.如果为了方便操作,最好将bin目录配置到PATH中,在/etc/profile最后添加:

export HBASE_HOME=/data/hbase241
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin

    保存,使配置生效:

source  etc/profile

6.启动集群,这里有几个常用命令,这里都一块说一下:

    1).启动整个集群,在master节点执行:

/data/hbase241/bin/start-hbase.sh

   

    2).停止整个集群,在master节点执行:

/data/hbase241/bin/stop-hbase.sh

   

    3).单独启动/停止HMaster节点,在master上执行命令:

//启动HMaster
 data/hbase241/bin/hbase-daemon.sh start master
 //停止HMaster
 data/hbase241/bin/hbase-daemon.sh start master

     

    4)单独启动/停止一个regionserver,需要启动/停止哪个节点,就登录到哪个节点执行即可,这里登录到worker1节点执行命令:

 //单独启动一个regionserver
 data/hbase241/bin/hbase-daemon.sh start  regionserver
  //单独停止一个regionserver
  /data/hbase241/bin/hbase-daemon.sh stop regionserver

   5).启动/停止集群conf目录下regionservers文件配置的所有regionserver,需要在master节点执行命令:

 //启动集群所有regionserver
 data/hbase241/bin/hbase-daemons.sh start  regionserver
 停止集群所有regionserver
  /data/hbase241/bin/hbase-daemons.sh stop regionserver

 

7.集群安装完成,可登录HBase自带的webUI验证一下,如果不能访问就去看HBase日志,默认在HBase目录的logs中:

http://master.hadoop.ljs:16010

    日志文件:

tar -xzvf hbase-2.4.1-bin.tar.gz

cd /opt/hbase-2.4.1/conf

Vi hbase-env.sh :

 

export HBASE_HOME=/opt/hbase-2.4.1

export JAVA_HOME=/opt/jdk1.8.0_231

export HBASE_MANAGES_ZK=false

 

vi hbase-site.xml

<!--设置HBase表数据,也就是真正的HBase数据在hdfs上的存储根目录 core-site.xml

里一样<property>

        <name>fs.defaultFS</name>

        <value>hdfs://192.168.39.4:8888</value>

    </property>-->
  <property>

    <name>hbase.rootdir</name>

    <value>hdfs://db1:8888/hbase</value>

  </property>

  <property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

  </property>

  <property>

    <name>hbase.tmp.dir</name>

    <value>/opt/hbase-2.4.1/tmp</value>

  </property>

  <!--zookeeper集群的URL配置,多个host中间用逗号,这里是一台主机模拟三台zookeeper-->

  <property>

    <name>hbase.zookeeper.quorum</name>

<value>db1</value>

#<value>db1:2182,db1:2183,db1:2184</value>

  </property>

  <!--设置zookeeper通信端口,不配置也可以,zookeeper默认就是2181-->

  <property>

    <name>hbase.zookeeper.property.clientPort</name>

    <value>2184</value>

  </property>

  <!-- 此属性可省略,默认值就是/hbase -->

  <property>

   <name>zookeeper.znode.parent</name>

   <value>/hbase</value>

  </property>

  <property>

    <name>hbase.unsafe.stream.capability.enforce</name>

    <value>false</value>

  </property>

 

 

#HMaster节点上启动HMaster命令
hbase-daemon.sh start master

#启动HRegionServer命令
hbase-daemon.sh start regionserver

 

[hadoop@node01 ~]$ stop-hbase.sh

 

[hadoop@node01 ~]$ start-hbase.sh


1.启动thrift-server

要使用Hbase的thrift接口,必须将它的服务启动,启动Hbase的thrift-server进程如下:

cd /app/zpy/hbase/bin

./hbase-daemon.sh start thrift

 

REST Server:REST服务器,该服务器将HBase表,行,单元和元数据作为URL指定的资源公开。启动hbase REST服务后就可以通过对uri: http://localhost:60050/api/ 的通用REST操作(GET/POST/PUT/DELETE)实现对hbase的REST形式数据操作.

1. 启停:方式有两种:

非后台启动方式:./bin/hbase rest start(默认为8080端口,可以指定为其他端口使用-p 端口)

后台方式启动:./bin/hbase-daemon.sh start rest

非后台关闭方式:Ctrl-C

后台方式关闭:./bin/hbase-daemon.sh stop rest

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论