新聞中心
HBase完全分布式集群部署
作者:Anson_前行 2020-09-08 13:25:52
數(shù)據(jù)庫
其他數(shù)據(jù)庫
分布式 HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,它不同于一般的關(guān)系數(shù)據(jù)庫,是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。

創(chuàng)新互聯(lián)公司專注于城中網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供城中營銷型網(wǎng)站建設(shè),城中網(wǎng)站制作、城中網(wǎng)頁設(shè)計、城中網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造城中網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供城中網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1.簡介
HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,它不同于一般的關(guān)系數(shù)據(jù)庫,是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。HBase使用和 BigTable非常相同的數(shù)據(jù)模型。用戶存儲數(shù)據(jù)行在一個表里。一個數(shù)據(jù)行擁有一個可選擇的鍵和任意數(shù)量的列,一個或多個列組成一個ColumnFamily,一個Fmaily下的列位于一個HFile中,易于緩存數(shù)據(jù)。表是疏松的存儲的,因此用戶可以給行定義各種不同的列。在HBase中數(shù)據(jù)按主鍵排序,同時表按主鍵劃分為多個Region。
在分布式的生產(chǎn)環(huán)境中,HBase 需要運行在 HDFS 之上,以 HDFS 作為其基礎(chǔ)的存儲設(shè)施。HBase 上層提供了訪問的數(shù)據(jù)的 Java API 層,供應(yīng)用訪問存儲在 HBase 的數(shù)據(jù)。在 HBase 的集群中主要由 Master 和 Region Server 組成,以及 Zookeeper,具體模塊如下圖所示:
簡單介紹一下 HBase 中相關(guān)模塊的作用:
Master
HBase Master用于協(xié)調(diào)多個Region Server,偵測各個RegionServer之間的狀態(tài),并平衡RegionServer之間的負載。HBaseMaster還有一個職責(zé)就是負責(zé)分配Region給RegionServer。HBase允許多個Master節(jié)點共存,但是這需要Zookeeper的幫助。不過當(dāng)多個Master節(jié)點共存時,只有一個Master是提供服務(wù)的,其他的Master節(jié)點處于待命的狀態(tài)。當(dāng)正在工作的Master節(jié)點宕機時,其他的Master則會接管HBase的集群。
Region Server
對于一個RegionServer而言,其包括了多個Region。RegionServer的作用只是管理表格,以及實現(xiàn)讀寫操作。Client直接連接RegionServer,并通信獲取HBase中的數(shù)據(jù)。對于Region而言,則是真實存放HBase數(shù)據(jù)的地方,也就說Region是HBase可用性和分布式的基本單位。如果當(dāng)一個表格很大,并由多個CF組成時,那么表的數(shù)據(jù)將存放在多個Region之間,并且在每個Region中會關(guān)聯(lián)多個存儲的單元(Store)。
Zookeeper
對于 HBase 而言,Zookeeper的作用是至關(guān)重要的。首先Zookeeper是作為HBase Master的HA解決方案。也就是說,是Zookeeper保證了至少有一個HBase Master 處于運行狀態(tài)。并且Zookeeper負責(zé)Region和Region Server的注冊。其實Zookeeper發(fā)展到目前為止,已經(jīng)成為了分布式大數(shù)據(jù)框架中容錯性的標(biāo)準(zhǔn)框架。不光是HBase,幾乎所有的分布式大數(shù)據(jù)相關(guān)的開源框架,都依賴于Zookeeper實現(xiàn)HA。
HBase集群建立在hadoop集群基礎(chǔ)之上,所以在搭建HBase集群之前需要把Hadoop集群搭建起來,并且要考慮二者的兼容性。
2.環(huán)境準(zhǔn)備
(1)各服務(wù)器其修改主機名,添加hosts文件,關(guān)閉防火墻
- [root@c7001 ~]# cat >> /etc/hosts << EOF
- 192.168.16.135 c7001
- 192.168.16.80 c7002
- 192.168.16.95 c7003
- 192.168.16.97 c7004
- 192.168.16.101 c7005
- EOF
(2)c7001配置ssh免密登陸,用于啟動集群
- ssh-keygen -t rsa
- sh-copy-id -i ~/.ssh/id_rsa.pub c7001
- ssh-copy-id -i ~/.ssh/id_rsa.pub c7002
- ssh-copy-id -i ~/.ssh/id_rsa.pub c7003
- ssh-copy-id -i ~/.ssh/id_rsa.pub c7004
- ssh-copy-id -i ~/.ssh/id_rsa.pub c7005
(3) 各服務(wù)器配置jdk1.7+
- [root@c7001 ~]# tar zxf jdk-8u171-linux-x64.tar.gz -C /opt/
- [root@c7001 opt]# mv jdk1.8.0_171/ jdk1.8
- [root@c7001 opt]# vim /etc/profile
- export JAVA_HOME=/opt/jdk1.8
- export PATH=$PATH:$JAVA_HOME/bin
- [root@c7001 ~] source /etc/profile
- [root@c7001 opt]# java -version
- java version "1.8.0_171
3.安裝hbase
- c7003 c7004 c7005
- [root@c7003 opt]# tar zxf /usr/src/hbase-1.3.0-bin.tar.gz -C /opt/
修改配置文件
- [root@c7003 hbase-1.3.0]# vim conf/hbase-env.sh
- #修改jdk變量
- JAVA_HOME=export JAVA_HOME=/opt/jdk1.8.0_121
- #關(guān)閉HBase自帶的Zookeeper,使用Zookeeper集群:
- export HBASE_MANAGES_ZK=false
編輯hbase-site.xml ,添加配置文件:
hbase.rootdir hdfs://c7001:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum c7003,c7004,c7005 hbase.zookeeper.property.dataDir /opt/hbase-1.3.0/tmp/zk/data - vi regionservers
- #加入如下內(nèi)容:
- c7004
- c7005
把Hbase復(fù)制到其他機器
- [root@c7003 opt]$ scp -r hbase-1.3.0 root@c7004:/opt/
- [root@c7003 opt]$ scp -r hbase-1.3.0 root@c7005:/opt/
啟動集群
- [root@c7003 hbase-1.3.0]$ bin/start-hbase.sh
web訪問 ip:16010
各節(jié)點進程(The picture is replicating)
本文標(biāo)題:HBase完全分布式集群部署
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/djiooji.html


咨詢
建站咨詢
