hbase徹底分佈式集羣部署

1.簡介

HBase是一個分佈式的、面向列的開源數據庫,它不一樣於通常的關係數據庫,是一個適合於非結構化數據存儲的數據庫。另外一個不一樣的是HBase基於列的而不是基於行的模式。HBase使用和 BigTable很是相同的數據模型。用戶存儲數據行在一個表裏。一個數據行擁有一個可選擇的鍵和任意數量的列,一個或多個列組成一個ColumnFamily,一個Fmaily下的列位於一個HFile中,易於緩存數據。表是疏鬆的存儲的,所以用戶能夠給行定義各類不一樣的列。在HBase中數據按主鍵排序,同時表按主鍵劃分爲多個Region。java

在分佈式的生產環境中,HBase 須要運行在 HDFS 之上,以 HDFS 做爲其基礎的存儲設施。HBase 上層提供了訪問的數據的 Java API 層,供應用訪問存儲在 HBase 的數據。在 HBase 的集羣中主要由 Master 和 Region Server 組成,以及 Zookeeper,具體模塊以下圖所示:linux

hbase徹底分佈式集羣部署

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

Master

HBase Master用於協調多個Region Server,偵測各個RegionServer之間的狀態,並平衡RegionServer之間的負載。HBaseMaster還有一個職責就是負責分配Region給RegionServer。HBase容許多個Master節點共存,可是這須要Zookeeper的幫助。不過當多個Master節點共存時,只有一個Master是提供服務的,其餘的Master節點處於待命的狀態。當正在工做的Master節點宕機時,其餘的Master則會接管HBase的集羣。數據庫

Region Server

對於一個RegionServer而言,其包括了多個Region。RegionServer的做用只是管理表格,以及實現讀寫操做。Client直接鏈接RegionServer,並通訊獲取HBase中的數據。對於Region而言,則是真實存放HBase數據的地方,也就說Region是HBase可用性和分佈式的基本單位。若是當一個表格很大,並由多個CF組成時,那麼表的數據將存放在多個Region之間,而且在每一個Region中會關聯多個存儲的單元(Store)。vim

Zookeeper

對於 HBase 而言,Zookeeper的做用是相當重要的。首先Zookeeper是做爲HBase Master的HA解決方案。也就是說,是Zookeeper保證了至少有一個HBase Master 處於運行狀態。而且Zookeeper負責Region和Region Server的註冊。其實Zookeeper發展到目前爲止,已經成爲了分佈式大數據框架中容錯性的標準框架。不光是HBase,幾乎全部的分佈式大數據相關的開源框架,都依賴於Zookeeper實現HA。緩存

HBase集羣創建在hadoop集羣基礎之上,因此在搭建HBase集羣以前須要把Hadoop集羣搭建起來,而且要考慮兩者的兼容性。服務器

hbase徹底分佈式集羣部署

2.環境準備

(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

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徹底分佈式集羣部署

各節點進程(The picture is replicating)

hbase徹底分佈式集羣部署

原文來自:https://www.jianshu.com/p/e2618564b086 做者:Anson_前行

相關文章
相關標籤/搜索