HBase —— 集群环境搭建

1、集群规划

这里搭建一个3节点的HBase集群,其中三台主机上均为Regin Server。同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002上部署备用的Master服务。Master服务由Zookeeper集群进行协调管理,若是主Master不可用,则备用Master会成为新的主Masterjava

2、前置条件

HBase的运行须要依赖Hadoop和JDK(HBase 2.0+对应JDK 1.8+) 。同时为了保证高可用,这里咱们不采用HBase内置的Zookeeper服务,而采用外置的Zookeeper集群。相关搭建步骤能够参阅:git

3、集群搭建

3.1 下载并解压

下载并解压,这里我下载的是CDH版本HBase,下载地址为:http://archive.cloudera.com/cdh5/cdh/5/程序员

# tar -zxvf hbase-1.2.0-cdh5.15.2.tar.gz

3.2 配置环境变量

# vim /etc/profile

添加环境变量:github

export HBASE_HOME=usr/app/hbase-1.2.0-cdh5.15.2
export PATH=$HBASE_HOME/bin:$PATH

使得配置的环境变量当即生效:web

# source /etc/profile

3.3 集群配置

进入${HBASE_HOME}/conf目录下,修改配置:shell

1. hbase-env.sh

# 配置JDK安装位置
export JAVA_HOME=/usr/java/jdk1.8.0_201
# 不使用内置的zookeeper服务
export HBASE_MANAGES_ZK=false

2. hbase-site.xml

<configuration>
    <property>
        <!-- 指定hbase以分布式集群的方式运行 -->
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <!-- 指定hbase在HDFS上的存储位置 -->
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop001:8020/hbase</value>
    </property>
    <property>
        <!-- 指定zookeeper的地址-->
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop001:2181,hadoop002:2181,hadoop003:2181</value>
    </property>
</configuration>

3. regionservers

hadoop001
hadoop002
hadoop003

4. backup-masters

hadoop002

backup-masters这个文件是不存在的,须要新建,主要用来指明备用的master节点,能够是多个,这里咱们以1个为例。vim

3.4 HDFS客户端配置

这里有一个可选的配置:若是您在Hadoop集群上进行了HDFS客户端配置的更改,好比将副本系数dfs.replication设置成5,则必须使用如下方法之一来使HBase知道,不然HBase将依旧使用默认的副本系数3来建立文件:服务器

  1. Add a pointer to your HADOOP_CONF_DIR to the HBASE_CLASSPATH environment variable in hbase-env.sh.
  2. Add a copy of hdfs-site.xml (or hadoop-site.xml) or, better, symlinks, under ${HBASE_HOME}/conf, or
  3. if only a small set of HDFS client configurations, add them to hbase-site.xml.

以上是官方文档的说明,这里解释一下:app

第一种 :将Hadoop配置文件的位置信息添加到hbase-env.shHBASE_CLASSPATH 属性,示例以下:分布式

export HBASE_CLASSPATH=usr/app/hadoop-2.6.0-cdh5.15.2/etc/hadoop

第二种 :将Hadoop的hdfs-site.xmlhadoop-site.xml 拷贝到 ${HBASE_HOME}/conf目录下,或者经过符号连接的方式。若是采用这种方式的话,建议将二者都拷贝或创建符号连接,示例以下:

# 拷贝
cp core-site.xml hdfs-site.xml /usr/app/hbase-1.2.0-cdh5.15.2/conf/
# 使用符号连接
ln -s   /usr/app/hadoop-2.6.0-cdh5.15.2/etc/hadoop/core-site.xml
ln -s   /usr/app/hadoop-2.6.0-cdh5.15.2/etc/hadoop/hdfs-site.xml

注:hadoop-site.xml这个配置文件如今叫作core-site.xml

第三种 :若是你只有少许更改,那么直接配置到hbase-site.xml中便可。

3.5 安装包分发

将HBase的安装包分发到其余服务器,分发后建议在这两台服务器上也配置一下HBase的环境变量。

scp -r /usr/app/hbase-1.2.0-cdh5.15.2/  hadoop002:usr/app/
scp -r /usr/app/hbase-1.2.0-cdh5.15.2/  hadoop003:usr/app/

4、启动集群

4.1 启动ZooKeeper集群

分别到三台服务器上启动ZooKeeper服务:

zkServer.sh start

4.2 启动Hadoop集群

# 启动dfs服务
start-dfs.sh
# 启动yarn服务
start-yarn.sh

4.3 启动HBase集群

进入hadoop001的${HBASE_HOME}/bin,使用如下命令启动HBase集群。执行此命令后,会在hadoop001上启动Master服务,在hadoop002上启动备用Master服务,在regionservers文件中配置的全部节点启动region server服务。

start-hbase.sh

4.5 查看服务

访问HBase的Web-UI界面,这里我安装的HBase版本为1.2,访问端口为60010,若是你安装的是2.0以上的版本,则访问端口号为16010。能够看到Master在hadoop001上,三个Regin Servers分别在hadoop001,hadoop002,和hadoop003上,而且还有一个Backup Matser 服务在 hadoop002上。


hadoop002 上的 HBase出于备用状态:


更多大数据系列文章能够参见我的 GitHub 开源项目: 程序员大数据入门指南

相关文章
相关标签/搜索