大家好,今天分享的是HBase體系架構和HBase集群安裝。承接上兩篇文章《
HBase簡(jiǎn)介》和《
HBase數據模型》,點(diǎn)擊回顧這2篇文章,有助于更好地理解本文。
一、HBase體系架構
Hbase體系架構圖
1.1、 Client
· 包含訪(fǎng)問(wèn)HBase的接口并維護cache來(lái)加快對HBase的訪(fǎng)問(wèn)
1.2、Region
· HBase自動(dòng)把表水平劃分成多個(gè)區域(region),每個(gè)region會(huì )保存一個(gè)表里面某段連續的數據;每個(gè)表一開(kāi)始只有一個(gè)region,隨著(zhù)數據不斷插入表,region不斷增大,當增大到一個(gè)閥值的時(shí)候,region就會(huì )等分會(huì )兩個(gè)新的region(裂變);
· 當table中的行不斷增多,就會(huì )有越來(lái)越多的region。這樣一張完整的表被保存在多個(gè)Regionserver 上。
1.3、Zookeeper
· 保證任何時(shí)候,集群中只有一個(gè)master;
· 存貯所有Region的尋址入口;
· 實(shí)時(shí)監控Region server的上線(xiàn)和下線(xiàn)信息,并實(shí)時(shí)通知Master;
· 存儲HBase的schema和table元數據;
1.4、Master
· 為Region server分配region;
· 負責Region server的負載均衡;
· 發(fā)現失效的Region server并重新分配其上的region;
· 管理用戶(hù)對table的增刪改操作;
1.5、RegionServer
· Region server維護region,處理對這些region的IO請求
· Region server負責切分在運行過(guò)程中變得過(guò)大的region
1.6、Memstore與storefile
· 一個(gè)region由多個(gè)store組成,一個(gè)store對應一個(gè)CF(列族)
· store包括位于內存中的memstore和位于磁盤(pán)的storefile,寫(xiě)操作先寫(xiě)入memstore,當memstore中的數據達到某個(gè)閾值,hregionserver會(huì )啟動(dòng)flashcache進(jìn)程寫(xiě)入storefile,每次寫(xiě)入形成單獨的一個(gè)storefile;當storefile文件的數量增長(cháng)到一定閾值后,系統會(huì )進(jìn)行合并(minor、major compaction),在合并過(guò)程中會(huì )進(jìn)行版本合并和刪除工作(majar),形成更大的storefile
· 當一個(gè)region所有storefile的大小和超過(guò)一定閾值后,會(huì )把當前的region分割為兩個(gè),并由hmaster分配到相應的regionserver服務(wù)器,實(shí)現負載均衡
· 客戶(hù)端檢索數據,先在memstore找,找不到再找storefile
· HRegion是HBase中分布式存儲和負載均衡的最小單元。最小單元就表示不同的HRegion可以分布在不同的 HRegion server上。
· HRegion由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè)columns family。
· 每個(gè)Strore又由一個(gè)memStore和0至多個(gè)StoreFile組成。如圖:StoreFile以HFile格式保存在HDFS上。
二、Hbase集群安裝
1、上傳tar包到集群里,這里我選擇的是hbase-1.1.2-bin.tar包。
https://hbase.apache.org 這是hbase官網(wǎng)。
2、修改hbase-env.sh中配置JAVA_HOME:
不使用HBase的默認zookeeper配置:
3、修改配置hbase-site.xml
4、配置regionservers 添加你配置的regionservers 的主機名,如hadoop1,hadoop2,hadoop3 ...
5、vi并配置backup-masters 添加你配置的master備份的主機名
6、拷貝Hadoop的conf下配置文件hdfs-site.xml到當前conf下
7、啟動(dòng):Zookeeper集群主機
8、啟動(dòng)hbase :因為HBase依賴(lài)于Hadoop和zookeeper之上的所以要Hadoop集群?jiǎn)?dòng)正常和Zookeeper集群?jiǎn)?dòng)正常之后,再啟動(dòng)hbase。
9、啟動(dòng)后
10、啟動(dòng)瀏覽器訪(fǎng)問(wèn)
如果能成功顯示出此頁(yè)面,那么我們的hbase集群安裝就算大功告成啦~。
好了,本次分享先告一段落,下次我們將繼續為大家介紹hbase,下次見(jiàn)~~~
有問(wèn)題的或者想獲取更多資料的請茄薇 java8733