HBase:独立模式、伪分布式和完全分布式的安装部署

目录

独立模式

伪分布式

完全分布式

使用独立安装的zookeeper


现有三台机器,主机名分别为hmaster1,hslave1,hslave2,并且已经搭建了完全分布式hdfs集群

独立模式

在独立模式下,HBase产生的数据存储于本地文件系统,所以并不能保证HBase的高可靠安全运行。这适用于本地开发和测试用例,其中集群故障的成本得到很好的控制。它不适合生产部署,最终会丢失数据。

1、安装jdk

2、上传hbase-1.3.1-bin.tar.gz至虚拟机中家目录下的apps目录并解压,并创建一个名为hbase的软链接指向解压后的目录

3、在~/.bash-profile中配置环境变量

HBASE_HOME=/home/jinge/apps/hbase
PATH=$HBASE_HOME/bin:$PATH
export HBASE_HOME PATH

注意source以下该文件

4、在hbase的环境变量文件{$HBASE_HOME}/conf/hbase-env.sh下配置JAVA_HOME

export JAVA_HOME=/home/jinge/apps/jdk

5、编辑HBase配置文件{$HBASE_HOME}/conf/hbase-site.xml



  
  
    hbase.rootdir
    file:///home/jinge/data/hbase
  

  
  
    hbase.zookeeper.property.dataDir
    /home/jinge/data/zookeeper
  

  
  
    hbase.unsafe.stream.capability.enforce
    false
  

6、启动hbase

start-hbase.sh

此时多了一个HMaster进程

通过 hbase shell 可以连接hbase会开启Main进程

可以通过 stop-hbase.sh 停止hbase

伪分布式

伪分布模式意味着HBase仍然在单个主机上完全运行,但每个HBase守护程序(HMaster,HRegionServer和ZooKeeper)作为一个单独的进程运行:在独立模式下,所有守护进程都在一个jvm进程运行。

在独立默认的基础上

1、修改HBase配置文件hbase-site.xml

  
  
    hbase.rootdir
    hdfs://hmaster1:9000/hbase
  

  
    hbase.zookeeper.property.dataDir
    /home/jinge/data/zookeeper
  

  
  
    hbase.cluster.distributed
    true
  

  
  
    hbase.cluster.distributed
    true
  

2、通过 start-dfs.sh 启动集群

3、通过 start-hbase.sh 启动hbase,进程如下

开启顺序:zookeeper->master->regionserver

HRegionServer为HBase区域服务器进程,HQuorumPeer为管理HBase的zk进程

此时可以通过50070端口观察到根目录下多了一个hbase目录

高可用

在伪分布式中的高可用是没有多大意义的,毕竟是在同一台机器上。

开启备份master(backup-master)

HMaster服务器控制HBase集群

local-master-backup.sh start 2 3 5

数字参数表示的是该备用master的端口偏移量的参数。每个HMaster使用两个端口(默认为16000和16010)。因此若使用偏移量2,备份HMaster将使用端口16002和16012,上面这行命令开启了3个备份master。最多可以启用9个备用master,即一共10个master。在伪分布式中启动备用master没有多大意义,毕竟是在同一台机器上。

不同备份master进程之间的PID是不同的,可以通过PID杀死备用master.PID存储在名为/tmp/hbase-USER-X-master.pid的文件中

cat /tmp/hbase-jinge-1-master.pid | xargs kill -9

或者记录主master的PID后通过kill -9杀死

开启多个区域服务器

HRegionServer按照HMaster的指示管理其StoreFiles中的数据。通常,一个HRegionServer在群集中的每个节点上运行。在同一系统上运行多个HRegionServers对于以伪分布式模式进行测试非常有用。

每个RegionServer需要两个端口,默认端口为16020和16030,类似的,开启命令中参数为端口偏移量

local-regionservers.sh start 2 3 5

不过HRegionServer的关闭可以通过命令指定偏移端口号关闭

 local-regionservers.sh stop [offset]

完全分布式

在完全分布式配置中,群集包含多个节点,每个节点运行一个或多个HBase守护程序。这些包括主要和备用主实例,多个ZooKeeper节点和多个RegionServer节点。

可以这样设置完全分布式的体系结构

节点名称 Master zookeeper RegionServer

hmaster1

hslave1

备用

hslave2

在伪分布式的基础上,确保设置了ssh无密登录

1、配置regionserver所在的节点信息,修改{$HBASE_HOME}/conf/regionservers,原文件内容为localhost

hslave1
hslave2

2、配置高可用备份master

在conf下创建backup-masters文件并添加备用master节点信息

hslave1

3、配置zookeeper服务所在的节点,在hbase-site.xml下添加

  
    hbase.zookeeper.quorum
    hslave1,hslave2
  

4、确保每个节点都有相同的配置文件,可以通过scp发送conf目录到各个节点对应位置

5、同上开启hdfs,开启hbase

hmaster1中的进程:

hslave1中的进程:

hslave2中的进程:

并且开启顺序为:zookeeper->master->regionserver->back-up master

使用独立安装的zookeeper

自带的zookeeper和hbase绑定在一起,这种部署模式存在一定的问题。因为当一个集群中有很多组件都需要zookeeper的时候,自然是采用一个独立安装的zookeeper更为妥当。

1、修改hbase-env.sh文件,添加

export HBASE_MANAGES_ZK=false

false表示使用独立安装的zookeeper

2、将zookeeper的配置文件zoo.cfg复制到hbase的CLASSPATH(conf目录下)

cp ~/apps/zookeeper/conf/zoo.cfg ~/apps/hbase/conf

3、注意hbase-env.sh中hbase.zookeeper.property.dataDir属性应该与zoo.cfg中的dataDir路径相同

然后重启hbase即可

你可能感兴趣的:(HBase)