溫馨提示×

溫馨提示×

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

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

HBase中怎么部署分布式集群

發(fā)布時間:2021-07-26 15:53:11 來源:億速云 閱讀:343 作者:Leah 欄目:數(shù)據(jù)庫

本篇文章為大家展示了HBase中怎么部署分布式集群,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1.簡介

HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,它不同于一般的關系數(shù)據(jù)庫,是一個適合于非結構化數(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 作為其基礎的存儲設施。HBase 上層提供了訪問的數(shù)據(jù)的 Java API 層,供應用訪問存儲在 HBase 的數(shù)據(jù)。在 HBase 的集群中主要由 Master 和 Region Server 組成,以及 Zookeeper,具體模塊如下圖所示:

HBase中怎么部署分布式集群

簡單介紹一下 HBase 中相關模塊的作用:

Master

HBase Master用于協(xié)調多個Region Server,偵測各個RegionServer之間的狀態(tài),并平衡RegionServer之間的負載。HBaseMaster還有一個職責就是負責分配Region給RegionServer。HBase允許多個Master節(jié)點共存,但是這需要Zookeeper的幫助。不過當多個Master節(jié)點共存時,只有一個Master是提供服務的,其他的Master節(jié)點處于待命的狀態(tài)。當正在工作的Master節(jié)點宕機時,其他的Master則會接管HBase的集群。

Region Server

對于一個RegionServer而言,其包括了多個Region。RegionServer的作用只是管理表格,以及實現(xiàn)讀寫操作。Client直接連接RegionServer,并通信獲取HBase中的數(shù)據(jù)。對于Region而言,則是真實存放HBase數(shù)據(jù)的地方,也就說Region是HBase可用性和分布式的基本單位。如果當一個表格很大,并由多個CF組成時,那么表的數(shù)據(jù)將存放在多個Region之間,并且在每個Region中會關聯(lián)多個存儲的單元(Store)。

Zookeeper

對于 HBase 而言,Zookeeper的作用是至關重要的。首先Zookeeper是作為HBase Master的HA解決方案。也就是說,是Zookeeper保證了至少有一個HBase Master 處于運行狀態(tài)。并且Zookeeper負責Region和Region Server的注冊。其實Zookeeper發(fā)展到目前為止,已經(jīng)成為了分布式大數(shù)據(jù)框架中容錯性的標準框架。不光是HBase,幾乎所有的分布式大數(shù)據(jù)相關的開源框架,都依賴于Zookeeper實現(xiàn)HA。

HBase集群建立在hadoop集群基礎之上,所以在搭建HBase集群之前需要把Hadoop集群搭建起來,并且要考慮二者的兼容性。

HBase中怎么部署分布式集群

2.環(huán)境準備

(1)各服務器其修改主機名,添加hosts文件,關閉防火墻

[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) 各服務器配置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  #關閉HBase自帶的Zookeeper,使用Zookeeper集群:  export  HBASE_MANAGES_ZK=false

編輯hbase-site.xml ,添加配置文件:

<?xml version="1.0"?>  <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  <configuration>    <property>       <name>hbase.rootdir</name>       <value>hdfs://c7001:9000/hbase</value>     </property>     <property>       <name>hbase.cluster.distributed</name>       <value>true</value>     </property>     <property>       <name>hbase.zookeeper.quorum</name>       <value>c7003,c7004,c7005</value>     </property>     <property>       <name>hbase.zookeeper.property.dataDir</name>       <value>/opt/hbase-1.3.0/tmp/zk/data</value>     </property>  </configuration>  vi   regionservers  #加入如下內容:  c7004  c7005

把Hbase復制到其他機器

[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

HBase中怎么部署分布式集群

各節(jié)點進程(The picture is replicating)

HBase中怎么部署分布式集群

上述內容就是HBase中怎么部署分布式集群,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI