溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hbase的集群搭建

發(fā)布時間:2020-07-14 04:10:07 來源:網(wǎng)絡(luò) 閱讀:2036 作者:原生zzy 欄目:大數(shù)據(jù)

1.集群搭建

1. 前置要求:

  - HBASE是用Java語言編寫的,所以在安裝HBASE時,必須安裝jdk
  - 安裝HBASE是必須有hadoop平臺
  - HBASE和jdk的版本存在兼容性,一定注意
jdk
hbase的集群搭建
hadoop
hbase的集群搭建

2. 集群規(guī)劃:

hbase的集群搭建

3. 具體搭建:

① 上傳安裝包(hbase-1.2.6-bin.tar.gz)
②解壓:tar zxvf hbase-1.2.6-bin.tar.gz -C /application/
③配置環(huán)境變量:

export HBASE_HOME=/application/hbase-1.2.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$SQOOP_HOME/bin:$HBASE_HOME/bin
source /etc/profie  #刷新配置文件
hbase version    #查看是否配置成功

hbase的集群搭建
④修改hbase的配置文件
cd /application/hbase-1.2.6/conf
hbase-env.sh

export JAVA_HOME=/application/jdk1.8  #配置jdk
export HBASE_MANAGES_ZK=false  #配置使用自己的zookeeper
#psHBASE中必須依賴zookeeper,zookeeper作用是存儲HBASE的尋址入口HBASE自帶的是單機版的,所有需要開啟使用自己的

hbase-site.xml

<configuration>
 <property>
<!-- 指定 hbase 在 HDFS 上存儲的路徑 -->
 <name>hbase.rootdir</name>
 <value>hdfs://zzy/hbase</value>
 </property>
 <property>
<!-- 指定 hbase 是分布式的 -->
 <name>hbase.cluster.distributed</name>
 <value>true</value>
 </property>
 <property>
<!-- 指定 zk 的地址,多個用“,”分割 -->
 <name>hbase.zookeeper.quorum</name>
 <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
 </property>
</configuration>

regionservers

hadoop01
hadoop02
hadoop03

backup-masters(自行創(chuàng)建)

#配置備份主節(jié)點的節(jié)點
hadoop02

⑤要把 hadoop 的 hdfs-site.xml 和 core-site.xml 放到 hbase-1.2.6/conf 下
因為hadoop集群是HA模式,所以需要配置:

cp /application/hadoop-2.7.6/etc/hadoop/core-site.xml .
cp /application/hadoop-2.7.6/etc/hadoop/hdfs-site.xml .

⑥分發(fā)安裝到各節(jié)點

cd /application/
scp -r hbase-1.2.6 hadoop02:$PWD
scp -r hbase-1.2.6 hadoop03:$PWD

⑦時間同步:
HBase 集群對于時間的同步要求的比 HDFS 嚴格,所以,集群啟動之前千萬記住要進行時間同步,要求相差不要超過 30s。在定時任務(wù)中配置定時更新時間。

4. 啟動集群:

① 先在每一個節(jié)點zookeeper 集群:zkServer.sh start
②啟動hdfs集群:start-dfs.sh
③啟動hbase:start-hbase.sh(啟動) / stop-hbase.sh(關(guān)閉) 最好在主節(jié)點啟動,在哪個節(jié)點啟動哪個節(jié)點就是hmaster。
④ 檢測是否正常啟動:jps
hbase的集群搭建
hbase的集群搭建
hbase的集群搭建
Web界面訪問:http://HBASE主節(jié)點:16010
注意:如果有節(jié)點相應(yīng)的進程沒有啟動,那么可以手動啟動:

    hbase-daemon.sh start master
    hbase-daemon.sh start regionserver

2.集群架構(gòu)

hbase的集群搭建
hbase的集群搭建
   在HBASE集群中:有多個主(hmaster)、多個從(RegionServer),每一個從節(jié)點中存儲的是多個Region,每一個Region,是HBASE一張表中分出來的(默認的Region大小為10G)。

集群角色介紹

1. region:

  是HBASE將一個表中的所有數(shù)據(jù)按照RowKey的不同范圍進行切割的邏輯單元,每一個region負責(zé)一定范圍數(shù)據(jù)的讀寫訪問。Region由RegionServer負責(zé)管理。HBASE中的region的概念就和hdfs中的數(shù)據(jù)塊的概念差不多。Region 是 HBase 表切分出來的一個分片。Region的大小在1.x版本的時候是1G,在2.X版本的時候是10G。
Region的工作機制
hbase的集群搭建
  當(dāng)客戶端發(fā)送命令(delete/put)的時候,region接收到請求的時候,首先會將數(shù)據(jù)更新到內(nèi)存中,同時將操作記錄到日志(追加),不論做的是什么操作,就會記錄到操作日志中,為了進行數(shù)據(jù)恢復(fù),因為region接收請求的時候,只是將數(shù)據(jù)同步到內(nèi)存,如果節(jié)點一宕機則數(shù)據(jù)丟失,所以通過日志的方式進行數(shù)據(jù)恢復(fù)(或者說是持久化)。當(dāng)然這個日志記錄到一定大小的時候會進行切分,切分出來的叫Hfile,最后到有很多Hfile的時候,會進行日志合并,會將這些Hfile合并一個storeFile,在進行合并的時候,會將日志中的delete和put進行抵消刪除(即一個put操作,如果有一個對應(yīng)有一個delete操作,則這兩條記錄抵消,在合并的時候不會記錄),最終合并出來的storefile中就會只有put操作而沒有delete操作。

2. hmaster:

  HBASE的主節(jié)點,負責(zé)整個集群的狀態(tài)感知、負載分配、負責(zé)用戶表的元數(shù)據(jù) (schema)管理(可以配置多個用來實現(xiàn) HA),只有hmaster才有權(quán)利去修改元數(shù)據(jù)。
  HBase 的 HMaster 其實就算是宕機一段時間也可以正常對外提供服務(wù)的,因為在HMaster在宕機的時候,集群仍然可以進行查詢但是不能進行讀寫。
   HMaster的負載:當(dāng)?shù)谝淮谓⒈淼臅r候,只有一個Region,然后當(dāng)region的值超過1G的時候,此時HBASE的HMaster會將region進行拆分(如果是2G,一份為二,每一個是1G),拆分后的region可能不存在一個節(jié)點上。由于HBASE是搭建在hadoop之上的,所以region的副本會在hdfs操作。
   hmaster的節(jié)點的上下線感知:當(dāng)如果有一臺Reginaservers宕機了,hmaster會自動將這個宕機節(jié)點中存儲的region通過其他的副本在另外的節(jié)點上復(fù)制出來(基于hdfs的副本),當(dāng)宕機的節(jié)點重新恢復(fù)的時候,hmaster又會進行負載,保證每一個Reginaservers中的region的個數(shù)大致相同,(只能保證集群的region的個數(shù)進行負載,如果region的大小不同,不能根據(jù)數(shù)據(jù)的大小進行負載)。

3.RegionServer:

   HBase 中真正負責(zé)管理 Region 的服務(wù)器,也就是負責(zé)為客戶端進行表數(shù)據(jù)讀 寫的服務(wù)器。每一臺 RegionServer 會管理很多的 Region,一個 RegionServer 上面管理的所有 的region不屬于同一張表。負責(zé)Region的拆分,負責(zé)和底層的HDFS的存儲交互,負責(zé)StoreFile 的合并。

4. ZooKeeper

   整個 HBase 中的主從節(jié)點協(xié)調(diào),元數(shù)據(jù)的入口,主節(jié)點之間的選舉,集群節(jié)點 之間的上下線感知……都是通過 ZooKeeper 來實現(xiàn)

5. Client

   Client 包含了訪問 HBase 的接口,另外 Client 還維護了對應(yīng)的 Cache 來加速 HBase 的 訪問,比如 Cache 的.META.元數(shù)據(jù)的信息。(緩存上一個查詢的rowkey的具體位置,方便快速一次查詢)。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI