日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HBase在CentOS上分布集群安装

發(fā)布時間:2025/3/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase在CentOS上分布集群安装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

場景

CentOS7上搭建Hadoop集群(入門級):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883

在上面搭建起來Hadoop的環(huán)境后,進(jìn)行HBase的安裝。

HBase

??? HBase是一個基于HDFS的面向列的分布式數(shù)據(jù)庫,源于Google的

BigTable論文。HDFS基于流式數(shù)據(jù)訪問,低時間延遲的數(shù)據(jù)訪問并不

適合在HDFS上運(yùn)行。所以,如果需要實(shí)時地隨機(jī)訪問超大規(guī)模數(shù)據(jù)集,使用HBase

是更好的選擇。

HBase體系結(jié)構(gòu)

??? HBase同樣是采用Master/Slaves的主從服務(wù)器結(jié)構(gòu),它由一個HMaster服務(wù)器和多

個HRegionServer服務(wù)器構(gòu)成,而所有服務(wù)器都是通過ZooKeeper協(xié)調(diào)并處理各服務(wù)器

運(yùn)行期間可能遇到的錯誤。HMaster負(fù)責(zé)管理所有的HRegionServer,各HRegionServer

負(fù)責(zé)存儲許多HRegion,每一個HRegion是對HBase邏輯表的分塊。

HRegion

??? HBase使用表(Table)存儲數(shù)據(jù)集,表由行和列組成,這與關(guān)系型數(shù)據(jù)庫類似。

但是在HBase中,當(dāng)表的大小超過設(shè)定值時,HBase會自動將表劃分為不同的區(qū)域

(Region),每個區(qū)域稱為一個HRegion,它是HBase集群上分布式存儲和負(fù)載均衡

的最小單位,在這一點(diǎn)上,表和HRegion類似于HDFS中文件與文件塊的概念。一個

HRegion中保存一個表中一段連續(xù)的數(shù)據(jù),通過表名和主鍵范圍(開始主鍵~結(jié)束主鍵)

來區(qū)分每一個HRegion。最開始,一個表只有一個HRegion,隨著HRegion逐漸變大,

直到超出設(shè)定的閩值大小,便會在某行的邊界把表分成兩個大小基本相同的HRegion,

稱為HRegion分裂。

HRegionServer

??? HRegionServer負(fù)責(zé)響應(yīng)用戶I/O請求,向HDFS中讀寫數(shù)據(jù),一臺機(jī)器上只運(yùn)行

一個HRegionServera HRegionServer包含兩部分:HLog部分和HRegion部分。

??? HLog用于存儲數(shù)據(jù)日志,實(shí)質(zhì)是HDFS的Sequence File。到達(dá)HRegion的寫操作

首先被追加到日志中,然后才被加入內(nèi)存中的MemStoreo HLog文件主要用于故障恢復(fù)。

例如某臺HRegionServer發(fā)生故障,那么它所維護(hù)的HRegion會被重新分配到新的機(jī)器

上,新的HRegionServer在加載HRegion的時候可以通過HLog對數(shù)據(jù)進(jìn)行恢復(fù)。

??? HRegion由多個HRegion組成,每個HRegion對應(yīng)表中的一個分塊,并且每一個

HRegion只會被一個HRegionServer管理。

HMaster

??? 每臺HRegionServer都會和HMaster服務(wù)器通信。HMaster的主要任務(wù)就是告訴每

個HRegionServer它要維護(hù)哪些HRegion 。

在HBase中可以啟動多個HMaster,通過ZooKeeper的Master選舉機(jī)制來保證系

統(tǒng)中總有一個Master在運(yùn)行。HMaster的具體包括以下功能。

1、管理用戶對表的增、刪、改、查操作。

2、管理HRegionServer的負(fù)載均衡,調(diào)整HRegion分布。

3、在HRegion分裂后,負(fù)責(zé)新HRegion的分配。

4、在HRegionServer停機(jī)后,負(fù)責(zé)失效HRegionServer上的HRegion遷移。

ZooKeeper

??? ZooKeeper存儲的是HBase中的一ROOT表和.META.表的位置,這是HBase中兩

張?zhí)厥獾谋?#xff0c;稱為根數(shù)據(jù)表(-ROOT-)和元數(shù)據(jù)表(.META. )。.META表記錄普通用

戶表的HRegion標(biāo)識符信息,每個HRegion的標(biāo)識符為:表名+開始主鍵十唯一ID。

隨著用戶表的HRegion的分裂,.META表的信息也會增加,并且還可能會被分割為幾

個HRegion,此時可以用一個-ROOT-表來保存META的HRegion信息,而-ROOT-表

是不能被分割的,也就是-ROOT表只有一個HRegion。那么客戶端(Client)在訪問

用戶數(shù)據(jù)前需要先訪問ZooKeeper,然后訪問一ROOT表,接著訪問.META.表,最后

才能找到用戶數(shù)據(jù)所在的位置進(jìn)行訪問。

??? 此外ZooKeeper還負(fù)責(zé)監(jiān)控各個機(jī)器的狀態(tài),之前各機(jī)器需要在ZooKeeper中注冊一

個實(shí)例。當(dāng)某臺HRegionServer發(fā)生故障時,通知HMaster進(jìn)行HRegion遷移;若HMaster

發(fā)生故障,ZooKeeper負(fù)責(zé)恢復(fù)HMaster,并且保證同時有且只有一臺HMaster運(yùn)行。

特點(diǎn)

HBase是一個基于列模式的映射數(shù)據(jù)庫,它只能表示簡單的鍵一值的映射關(guān)

系。與關(guān)系型數(shù)據(jù)庫相比,它具有如下特點(diǎn)。

1、數(shù)據(jù)類型:

HBase只有簡單的字符串類型,它只保存字符串.而關(guān)系型數(shù)據(jù)庫有著豐富的類型選擇和存儲方式。

2、數(shù)據(jù)操作:

HBase只有簡單的插入、查詢、刪除、清空等操作,表和表之間是

分離的,沒有復(fù)雜的表和表之間的關(guān)系,所以不能也沒有必要實(shí)現(xiàn)表和表之間

的關(guān)聯(lián)操作。而關(guān)系型數(shù)據(jù)庫有多種連接操作。

3、存儲模式:

HBase是基于列存儲的,每個列族都由幾個文件保存,不同列族的

文件是分離的。而關(guān)系型數(shù)據(jù)庫是基于表格結(jié)構(gòu)和行模式存儲的。

4、數(shù)據(jù)維護(hù):

HBase的更新操作實(shí)際上是插入了新的數(shù)據(jù),它的舊版本依然會保留,

而關(guān)系型數(shù)據(jù)庫是替換修改。

5、可伸縮性:

HBase這類分布式數(shù)據(jù)庫就是為了這個目的而開發(fā)出來的,所以它

能夠輕松地增加或減少硬件數(shù)量,并且對錯誤的兼容性也比較高。而關(guān)系型數(shù)

據(jù)庫通常需要增加中間層才能實(shí)現(xiàn)類似的功能。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。

實(shí)現(xiàn)

1、首先下載HBase的安裝包

https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/

這里選擇2.4.5版本下的bin.tar.gz的文件下載

下載成功之后將其上傳并解壓到master服務(wù)器上

?
目錄文件說明:?

bin: 包含了所有可執(zhí)行命令與腳本

conf:配置文件目錄

hbase-webapps:存儲Web應(yīng)用的目錄,這些應(yīng)用主要用于查看HBase的運(yùn)行狀態(tài)。

默認(rèn)訪問地址http://master:16010,其中master是HBase Mater服務(wù)器地址。

lib:jar文件目錄,包括第三方依賴與Hadoop相關(guān)jar文件,其中Hadoop相關(guān)jar文件最好能與實(shí)際運(yùn)行的Hadoop版本一致。

logs:日志文件

2、分布模式的HBase會運(yùn)行在多個節(jié)點(diǎn)上,通常是將HBase的HMaster運(yùn)行在HDFS的NameNode上,而

將HRegionServer運(yùn)行在HDFS的DataNode上。

進(jìn)入到conf目錄,修改配置文件

修改hbase-site.xml

<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value></property><property><name>hbase.master</name><value>master:600000</value></property><property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value></property> </configuration>

說明:

hbase.cluster.distributed 配置HBase為完全分布式

hbase.master 配置HMaster的地址

hbase.zookeeper.quorum 配置Zookeeper集群中所有服務(wù)器的位置

hbase.rootdir 配置HRegionServer的數(shù)據(jù)庫存儲目錄

3、修改hbase-env.sh

此文件是來配置全局HBase集群系統(tǒng)的特性,每一臺機(jī)器都可以通過該文件來了解全局HBse的

某些特性。在文件末尾需要增加以下環(huán)境變量

export JAVA_HOME=/usr/local/java/jdk1.8.0_162 export HADOOP_HOME=/hadoop/hadoop-2.8.0 export HBASE_HOME=/hbase/hbase-2.4.5 export HBASE_MANAGES_ZK=true

說明:

??? 前3個環(huán)境變量分別代表Java.、Hadoop、HBase的安裝目錄。分布式的HBase集

群需要ZooKeeper實(shí)例的運(yùn)行,最后一個環(huán)境變量HBASE MANAGES ZK表示HBase

是否使用內(nèi)置的ZooKeeper實(shí)例,默認(rèn)為true。當(dāng)在hbase-site.xml文件中配置了hbase.

zookeeper.quorum屬性后,系統(tǒng)會使用該屬性指定的ZooKeeper集群服務(wù)器列表。在啟動

HBase時,HBase將把ZooKeeper作為自身的一部分運(yùn)行,其對應(yīng)進(jìn)程為“HQuorumPeer" ,

關(guān)閉HBase時其內(nèi)置ZooKeeper實(shí)例也一起關(guān)閉。如果HBASE MANAGES ZK為

false,表示不會使用內(nèi)置ZooKeeper實(shí)例,也就是內(nèi)置ZooKeeper不會隨HBase啟動,而

需要用戶在指定機(jī)器上獨(dú)立安裝配置ZooKeeper實(shí)例,同樣使用hbase.zookeeper.quorum

屬性指定這些機(jī)器,并且在啟動HBase之前必須手動啟動這些機(jī)器的ZooKeeper。

這里使用HBase內(nèi)置ZooKeeper實(shí)例。

4、修改regionservers文件

??? 該文件列出T所有HRegionServer節(jié)點(diǎn),配置方式與Hadoop的slaves文件類似,

每一行指定一臺機(jī)器。當(dāng)HBase啟動、關(guān)閉時會把此文件中列出的所有機(jī)器同時啟動、

關(guān)閉。

5、同Hadoop的分布式安裝類似,還需要將HBase所在目錄/hbase分別復(fù)制到slave1、slave2

scp -r /hbase slave1:/ scp -r /hbase slave2:/

6、啟動HBase

進(jìn)入到master節(jié)點(diǎn)的hbase的bin目錄下

./start-hbase.sh

7、在slave1和2節(jié)點(diǎn)上輸入jps查看增加了兩個java進(jìn)程,HQuorumPeer 為ZooKeeper進(jìn)程和HMaster為HBase進(jìn)程。

8、在啟動HBase后,通過命令

./hbase shell

進(jìn)入到HBase Shell

然后使用命令

status

可以看到HBase的運(yùn)行狀態(tài)

標(biāo)識共有兩個HRegionServer正在正常運(yùn)行

還可以通過HMaster節(jié)點(diǎn)的16010端口查看HBase的運(yùn)行狀態(tài)

http://192.168.148.128:16010/

最后通過命令exit退出HBase Shell
?

總結(jié)

以上是生活随笔為你收集整理的HBase在CentOS上分布集群安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。