Hadoop生態(tài)的組件HBase怎么搭建

這篇文章主要講解了“Hadoop生態(tài)的組件HBase怎么搭建”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hadoop生態(tài)的組件HBase怎么搭建”吧!

10年積累的做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有共青城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.分布式表格系統(tǒng)的由來

   分布式表格系統(tǒng)對外提供表格模型,每個(gè)表格由很多行組成,通過主鍵唯一標(biāo)識,每一行包含很多列。整個(gè)表格在系統(tǒng)中全局有序。而Google的BigTable是分布式表格系統(tǒng)的始祖,它采用雙層結(jié)構(gòu)。底層用GFS作為持久層存儲層。而BigTable的對外的接口不怎么豐富。所以谷歌有開發(fā)出Megastore和Spanner.既提供來接口,又能處理事務(wù).

    表格中的每一行都有主鍵(Row Key)作為唯一標(biāo)識。每一行又包含很多列(Column)。某一行的某一列構(gòu)成一個(gè)單元(Cell),每個(gè)單元包含多個(gè)版本的數(shù)據(jù)。整體來看的話,BigTable是一個(gè)分布式多維度映射表。

(row:string,column:string,timestamp:int64)->string

     多個(gè)列的話又可以構(gòu)成一個(gè)列族(Column Family),所以列名就由列族(Column Family)+列名(qualifier).列族是訪問控制的單元,所以列族的話是預(yù)先定義好的,而列的話后面可以添加,數(shù)量任意.

 存儲結(jié)構(gòu)如圖(邏輯視圖):

   Hadoop生態(tài)的組件HBase怎么搭建

  存儲結(jié)構(gòu)如圖(物理視圖):

    Hadoop生態(tài)的組件HBase怎么搭建

    行主鍵是任意的字符串,但是大小不能超過64KB。按主鍵排序,而主鍵是字典序.所以網(wǎng)址接近剛好可以排列在一塊.

2.Hadoop中的HBase

    HBase開源山寨版BigTable. 基于Hadoop的分布式文件系統(tǒng)HDFS之上。然后HDFS和HBase是有什么區(qū)別呢?

HDFS 是分布式文件系統(tǒng),適合保存大文件。官方宣稱它并非普通用途文件系統(tǒng),不提供文件的個(gè)別記錄的快速查詢。 
另一方面,HBase基于HDFS且提供大表的記錄快速查找(和更新)。這有時(shí)可能引起概念混亂。 HBase 內(nèi)部將數(shù)據(jù)放到索引好的 
"存儲文件(StoreFiles)" ,以便高速查詢。存儲文件位于 HDFS中。
PS:說白了,HBASE就是一個(gè)索引集合.

    HBase與關(guān)系數(shù)據(jù)庫的存儲結(jié)構(gòu)對比(HBase是NOSQL--not only sql的一種):在HBase中定位到value值,需要幾個(gè)坐標(biāo):rowkey,列族,列,版本號。。在這里我對比的例子不太恰當(dāng)。。Hbase還是存儲一些半結(jié)構(gòu)化的數(shù)據(jù)要好一點(diǎn)。

     MySQL:

     idnamepasswordtype
       1zhangsanxxxxx

sb

       2lisi324324sb2
       3zhaowu423423db

       hbase:

    rowkey(主鍵)

    info(列族)

others(列族)
   namepasswordtypeage
rk0000999

zhangsan,version1

zhangsan3,version2

xxxxxxxxsb10

      Hadoop生態(tài)的組件HBase怎么搭建

3.實(shí)驗(yàn)環(huán)境中搭建HBase

   前提: 已經(jīng)部署分布式文件系統(tǒng),例如HDFS.

   3.1 機(jī)器準(zhǔn)備,以及節(jié)點(diǎn)的分配

         在這里有三臺機(jī)器,其中一臺為HMaster,同時(shí)的有三個(gè)HRegionServer.所以有一臺機(jī)器時(shí)兩種角色.還需要部署HDFS和Zookeeper.我的HDFS也是三個(gè)節(jié)點(diǎn),也是有一臺機(jī)器同時(shí)有NameNode和DataNode,SecondaryNameNode,其他兩臺機(jī)器只有datanode.

IPHostname

JVM Pro?cess

192.168.237.201Spark-0x64-001HMaster,HRegionServer,QuorumPeerMain,DataNode
NameNode,SecondaryNameNode
192.168.237.202Spark-0x64-002

HRegionServer,QurumPeerMain,DataNode

192.168.237.203Spark-0x64-003HRegionServer,QurumPeerMain,DataNode

    3.2 安裝非HA模式的HDFS

          由于之前之前已經(jīng)安裝過HDFS的分布式集群,但是是非HA機(jī)制. 這里就不重復(fù)啦.

    3.3  安裝集群的Zookeeper

           不重復(fù)啦。之前的博客已經(jīng)寫啦.http://my.oschina.net/codeWatching/blog/367309

     3.4 配置HBase的文件

          a. 修改文件hbase-evn.sh.添加兩個(gè)地方.

           export JAVA_HOME=/spark/app/jdk1.7.0_21/

           export HBASE_MANAGES_ZK=false

          b. 修改文件hbase-site.xml

<configuration>
   <property>
      <name>hbase.rootdir</name>
      <value>hdfs://Spark-0x64-001:9000/hbase</value>
   </property>
   <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
   </property>
   <property>
      <name>hbase.master</name>
      <value>Spark-0x64-001:6000</value>
   </property>
   <property>
      <name>hbase.zookeeper.quorum</name>
      <value>Spark-0x64-001,Spark-0x64-002,Spark-0x64-003</value>
   </property>
</configuration>

         c.將hadoop中的core-site.xml和hdfs-site.xml拷貝到hbase的conf目錄下

         d.編輯regionservers文件

Spark-0x64-001
Spark-0x64-002
Spark-0x64-003

     3.5 將配置好的Hbase拷貝到其他機(jī)器上。Scp -r 命令.

     3.6 配置時(shí)間時(shí)間服務(wù)器。見鏈接:........

     3.7 啟動HBase

a.在三臺機(jī)器上啟動zookeeper
b.啟動HDFS.已啟動
c.啟動Hbase(主節(jié)點(diǎn)Master)--->sh bin/start-hbase.sh.
d.可選,啟動多個(gè)HMaster---->hbase-daemon.sh start master

      3.8 驗(yàn)證Web頁面

http://192.168.237.201:60010

4.HBase的系統(tǒng)架構(gòu)分析

   HBase的技術(shù)架構(gòu)圖:一覽無余 

  Hadoop生態(tài)的組件HBase怎么搭建

Hadoop生態(tài)的組件HBase怎么搭建

Client
1 包含訪問hbase的接口,client維護(hù)著一些cache來加快對hbase的訪問,比如regione的位置信息。
 
Zookeeper
1 保證任何時(shí)候,集群中只有一個(gè)master
2 存貯所有Region的尋址入口。
3 實(shí)時(shí)監(jiān)控Region Server的狀態(tài),將Region server的上線和下線信息實(shí)時(shí)通知給Master
4 存儲Hbase的schema,包括有哪些table,每個(gè)table有哪些column family
 
Master
1 為Region server分配region
2 負(fù)責(zé)region server的負(fù)載均衡
3 發(fā)現(xiàn)失效的region server并重新分配其上的region
4 GFS上的垃圾文件回收
5 處理schema更新請求
 
Region Server
1 Region server維護(hù)Master分配給它的region,處理對這些region的IO請求
2 Region server負(fù)責(zé)切分在運(yùn)行過程中變得過大的region
可以看到,client訪問hbase上數(shù)據(jù)的過程并不需要master參與(尋址訪問zookeeper和region server,數(shù)據(jù)讀寫訪問regione server),master僅僅維護(hù)者table和region的元數(shù)據(jù)信息,負(fù)載很低。

HBase的尋找數(shù)據(jù)的流程

 Hadoop生態(tài)的組件HBase怎么搭建

系統(tǒng)如何找到某個(gè)row key (或者某個(gè) row key range)所在的region
hbase使用三層類似B+樹的結(jié)構(gòu)來保存region位置。
第一層是保存zookeeper(谷歌chubby)里面的文件,它持有root region的位置。
第二層root region是.META.表的第一個(gè)region其中保存了.META.z表其它region的位置。通過root region,我們就可以訪問.META.表的數(shù)據(jù)。
.META.是第三層,它是一個(gè)特殊的表,保存了hbase中所有數(shù)據(jù)表的region 位置信息。
PS:root region永遠(yuǎn)不會被split,保證了最需要三次跳轉(zhuǎn),就能定位到任意region 。
2.META.表每行保存一個(gè)region的位置信息,row key 采用表名+表的最后一樣編碼而成。
3 為了加快訪問,.META.表的全部region都保存在內(nèi)存中。
假設(shè),.META.表的一行在內(nèi)存中大約占用1KB。并且每個(gè)region限制為128MB。
那么上面的三層結(jié)構(gòu)可以保存的region數(shù)目為:
(128MB/1KB) * (128MB/1KB) = = 2(34)個(gè)region
4 client會將查詢過的位置信息保存緩存起來,緩存不會主動失效,因此如果client上的緩存全部失效,則需要進(jìn)行6次網(wǎng)絡(luò)來回,才能定位到正確的region(其中三次用來發(fā)現(xiàn)緩存失效,另外三次用來獲取位置信息)。

感謝各位的閱讀,以上就是“Hadoop生態(tài)的組件HBase怎么搭建”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Hadoop生態(tài)的組件HBase怎么搭建這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站標(biāo)題:Hadoop生態(tài)的組件HBase怎么搭建
文章起源:http://muchs.cn/article14/ihdsge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、服務(wù)器托管、企業(yè)建站網(wǎng)站設(shè)計(jì)、做網(wǎng)站商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)