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 開源項目: 程序員大數據入門指南

相關文章
相關標籤/搜索