【HBase】 - 單機模式、僞分佈式、徹底分佈式配置

Hbase 簡介

Hbase: Hadoop Databasenode

Hbase是非關係型數據庫,隨着如今互聯網的數據量愈來愈多,需求更加多元化,傳統的關係型數據庫沒法知足實際的業務需求,NoSql類型數據庫孕育而生。sql

傳統RDBMS缺陷:

  1. 對單機性能的要求比較高,當存儲海量數據時,單機的性能可能達到頂峯仍然不能知足業務需求
  2. 傳統關係型數據庫表的字段不能改變,對於一些個性化需求產生的非結構化數據,沒法處理
  3. 傳統關係型數據庫的容量有限,將海量數據存儲在一張表中,經過分庫/hash一致性等方法對數據的存儲和查詢效率比較低

Nosql數據庫:

可用於存儲非結構化數據,同時採用分佈式的設計基本可實現整個數據庫容量的無限擴容,同時對單機的性能要求不高,基於Google的big table論文實現,HBase經過行鍵、列族、列實現表字段的無限擴展。shell

例如

address字段,可將address設定爲一個列族,address:provice、address:city、address:area 3個列來表示不一樣的地域,北京可只用address:city、address:area兩個列,廣東可以使用address:provice、address:city、address:area三個列,這樣就可知足不一樣地域的全部要求,若是須要引入國家,直接添加一個新的列:address:country便可,這樣就可解決關係型數據庫字段固定致使不靈活的缺陷數據庫


HBase 三種部署模式

Hbase 部署模式:單機模式、僞分佈式、徹底分佈式服務器

基礎:Hadoop技術體系框架基於Java開發,所以配置Hadoop框架需事先配置好JDK框架

注意:HBase和Hadoop存在版本匹配的關係分佈式

單機模式

單機模式:Hbase單機獨立運行 配置步驟:oop

  1. 配置$HBASE_HOME/conf/hbase-env.sh
設置JAVA_HOME環境變量:JAVA_HOME:/usr/local/jdk1.8.0_112
  1. 配置$HBASE_HOME/conf/hbase-site.xml
<property>
	<name>hbase.rootdir</name>
	<value>file:///usr/local/hbase0.90.5/data</value>
</property>

解釋:性能

hbase.rootdir:hbase存放數據的目錄:file://表示本地問文件系統存儲(實際存儲HDFS) 3. 啓動Hbase: $HBASE_HOME/bin/start-hbase.sh 4. 驗證Hbase是否成功啓動:控制檯輸入jps,若是出現Hmaster的線程表示成功開啓 5. hbase shell:若能成功進入shell界面,表示Hbase的啓動和配置都沒問題線程

僞分佈模式

僞分佈模式:Hbase單機模擬Hbase數據庫集羣

安裝步驟:

  1. 配置$HBASE_HOME/conf/hbase-env.sh
設置JAVA_HOME環境變量:JAVA_HOME:/usr/local/jdk1.8.0_112
設置export HBASE_CLASSPATH:export HBASE_CLASSPATH=/usr/local/hadoop-0.20.2/conf

解釋:HBASE_CLASSPATH綁定Hbase到Hadoop集羣:主要是hadoop的core-site.xml

  1. 配置$HBASE_HOME/conf/hbase-site.xml
<property>
	<name>hbase.rootdir</name>  
	<value> file:///usr/local/hbase0.90.5/data </value>
</property>
<property>
	<name>hbase.cluster.distributed </name>  
	<value>true </value>
</property>

解釋:hbase.cluster.distributed :是否開啓Hbase的分佈式集羣

  1. Hbase和hadoop存在版本匹配問題:若是出現Hmaster沒法或者建立的狀況,可將主機上的Hadoop核心包hadoop-core-XXXX.jar替換HBase lib目錄下的Hadoop-core-XXX.jar
  2. 啓動Hbase: $HBASE_HOME/bin/start-hbase.sh
  3. 驗證Hbase是否成功啓動:控制檯輸入jps,若是出現Hmaster的線程表示成功開啓
  4. hbase shell:若能成功進入shell界面,表示Hbase的啓動和配置都沒問題

徹底分佈式

徹底分佈式:真實的HBase部署環境

安裝步驟:

  1. 配置$HBASE_HOME/conf/hbase-env.sh
設置JAVA_HOME環境變量:JAVA_HOME:/usr/local/jdk1.8.0_112
設置export HBASE_CLASSPATH:export HBASE_CLASSPATH=/usr/local/hadoop-0.20.2/conf
  1. 去除註釋:export HBASE_MANAGES_ZK=false 使用Hbase自帶的ZooKeeper處理

解釋:HBASE_CLASSPATH綁定Hbase到Hadoop集羣:主要是hadoop的core-site.xml

  1. 配置$HBASE_HOME/conf/hbase-site.xml以及regionservers文件(節點IP)
<property>
	<name>hbase.rootdir</name>  
	<value> file:///usr/local/hbase0.90.5/data </value>
</property>
<property>
	<name>hbase.cluster.distributed </name>  
	<value>true </value>
</property>
<property>
	<name>hbase.zookeeper.quorum</name>
	<value>master,slaves01,slaves02</value>
</property>

解釋:hbase.zookeeper.quorum:Zookeeper的Znode節點,也就是HBase集羣每一個節點服務器主機名,需在Hosts裏面進行指定或者經過DNS服務器進行主機名解析,這裏使用Hbase自帶的Zookeeper進行處理

  1. Hbase和hadoop存在版本匹配問題:若是出現Hmaster沒法或者建立的狀況,可將主機上的Hadoop核心包hadoop-core-XXXX.jar替換HBase lib目錄下的Hadoop-core-XXX.jar

  2. 啓動Hbase: $HBASE_HOME/bin/start-hbase.sh

  3. 驗證Hbase是否成功啓動:控制檯輸入jps,若是出現Hmaster的線程表示成功開啓

  4. hbase shell:若能成功進入shell界面,表示Hbase的啓動和配置都沒問題

注意:實際環境中Hbase的數據存儲是構建於Hadoop HDFS基礎上,只需配置hbase-site.xml文件指定HBase數據存儲路徑便可:

<property>
	<name>hbase.rootdir</name>  
	<value>master:9090/hbase </value>
</property>

解析:

master:9090/hbase

  • master:表示Hadoop集羣的Namenode節點主機名
  • 9090:HDFS的服務端口,對應Hadoop core.site.xml: fs.default.name屬性
  • /hbase:HDFS的根目錄上存儲HBase數據目錄(自動建立)

HBase成功啓動的界面:HMaster/HRegionServer

相關文章
相關標籤/搜索