HBase安裝配置

1、HBase概述:

HBase是一個開源的非關係型分佈式數據庫(NoSQL),它參考了谷歌的BigTable建模,實現的編程語言爲 Java。它是Apache軟件基金會的Hadoop項目的一部分,運行於HDFS文件系統之上,爲 Hadoop 提供相似於BigTable 規模的服務,能夠存儲海量稀疏的數據,並具有必定的容錯性、高可靠性及伸縮性。主要應用場景是實時隨機讀寫超大規模的數據。java

HBase在列上實現了BigTable論文提到的壓縮算法、內存操做和布隆過濾器。HBase的表可以做爲MapReduce任務的輸入和輸出,能夠經過Java API來存取數據,也能夠經過REST、Avro或者Thrift的API來訪問。算法

HBase不能取代RDBMS,由於兩者的應用場景不一樣。HBase爲了解決海量數據的擴展性,支持簡單的增長節點來實現線性擴展,從而在集羣上管理海量的非結構化或半結構化的稀疏數據。HBase僅能經過主鍵(raw key)或主鍵的range檢索數據,支持單行事務。shell

 
 
 

上圖描述Hadoop EcoSystem中的各層系統。其中,HBase位於結構化存儲層,Hadoop HDFS爲HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce爲HBase提供了高性能的計算能力,Zookeeper爲HBase提供了穩定服務和failover機制。數據庫

此外,Pig和Hive還爲HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的很是簡單。 Sqoop則爲HBase提供了方便的RDBMS數據導入功能,使得傳統數據庫數據向HBase中遷移變的很是方便。apache

2、安裝以前 - 檢查必要條件

2.1 Java (須要安裝1.6.x及其以上版本)

在終端輸入 java -version 來查看你機子上的 Java 版本;編程

 

2.2 Hadoop

Hadoop的具體安裝能夠參見咱們之前的課程:Hadoop部署及管理須要注意的是僞分佈模式下,HBase 的版本須要和 Hadoop版本 匹配 ,否則極可能容易出錯。你能夠在HBase的lib目錄下看到對應的Hadoop的Jar文件版本。vim

在這裏,咱們使用了Hadoop V2.4.1版本以及HBase V0.98.11版本。ruby

Hadoop 2.4.1 目錄位置在實驗樓環境中的 /opt/hadoop-2.4.1bash

2.3 SSH

SSH的安裝,Hadoop部署及管理中也涵蓋了這部份內容。SSH用來管理遠程Hadoop和HBase守護進程。服務器

本實驗環境下,爲了你們的方便,咱們已經爲你們準備好了這些必要條件,你只須要專一於HBase的安裝配置便可。


3、安裝進行時 - 安裝和配置HBase

確認上面的條件咱們都準備好了以後,就能夠開始安裝HBase了。實驗開始前,你應該切換到 hadoop 用戶:

$ su hadoop

HBase的安裝一般分爲3種模式:

3.1 單機模式 安裝

3.1.1 下載和解壓

單機模式的安裝很是簡單,幾乎不用對安裝文件作什麼修改就可使用。單機模式下,HBase並不使用HDFS,所以將安裝文件解壓後就幾乎能夠直接運行。輸入命令下載HBase:

$ sudo wget http://labfile.oss.aliyuncs.com/hbase-0.98.11-hadoop2-bin.tar.gz

hbase 其餘下載源參考 : https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.9-bin.tar.gz
hbase 其餘下載源參考 : https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.9-bin.tar.gz

再將其壓縮包解壓:

$ sudo tar zxvf hbase-0.98.11-hadoop2-bin.tar.gz 

因爲解壓出來的文件名可能很長,建議修改成較短文件名,例如:

$ sudo mv hbase-0.98.11-hadoop2 /opt/hbase $ sudo chmod 777 /opt/hbase #授予權限 

3.1.2 配置 hbase-site.xml

在運行以前,咱們須要對HBase進行相關配置。建議你們修改 ${HBase-Dir}/conf/hbase-site.xml 文件,由於即便你修改了hbase-default.xml文件,也會被hbase-site.xml中的配置所覆蓋。也就是說,最終是以 hbase-site.xml 中的配置爲準的。咱們作以下修改:

<configuration> <property> <name>hbase.rootdir</name> <value>file:///tmp/hbase-${user.name}/hbase</value> </property> </configuration> 

注意:修改 ${user.name}爲你本身的 hadoop 用戶名

3.2 僞分佈模式安裝

僞分佈模式是一個運行在單臺機器上的分佈式模式。此模式下,HBase全部的守護進程將運行在同一個節點之上,並且須要依賴HDFS,所以在此以前必須保證HDFS已經成功運行,請參考咱們前面的課程:Hadoop僞分佈模式配置部署確認無誤後,咱們就能夠開始配置HBase的參數了。

(1)配置 hbase-site.xml 文件

<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> </configuration> 

hbase.rootdir:該參數制定了HReion服務器的位置,即數據存放的位置。主要端口號要和Hadoop相應配置一致。
hbase.cluster.distributed:HBase的運行模式。false是單機模式,true是分佈式模式。若爲false, HBase和Zookeeper會運行在同一個JVM裏面。默認爲false.

(2)設置環境變量

另外,咱們須要設置一些環境變量。修改HBase下的conf目錄中的hbase-env.sh文件(你的jdk路徑可能不同):

export JAVA_HOME=/usr/local/jdk1.7.0_67 export HBASE_MANAGES_ZK=true 

export HBASE_MANAGES_ZK=true
此配置信息,表示設置由hbase本身管理zookeeper,不須要單獨的zookeeper, 本文搭建的 Hbase 用的是自帶的 zookeeper,故設置爲true.

最後修改添加PATH, 則輸入:

$ sudo vim /etc/profile

來修改 /etc/profile 文件:

# set hbase path export HBASE_HOME=/opt/hbase export PATH=$PATH:/opt/hbase/bin 

3.3 徹底分佈模式安裝

因爲徹底分佈模式須要多臺機器,在這裏咱們就不給出演示了。


4、安裝以後 - 運行和中止 HBase

正如上面咱們提到的,HBase安裝分爲3個模式,所以HBase的運行天然也分爲一樣的3個模式。

4.1 單機模式運行

(1)啓動

單機模式下不須要HDFS,所以不須要事先啓動Hadoop,直接啓動HBase便可。終端下輸入命令:./start-hbase.sh

 
 

注意:路徑要正確,應爲:$HBASE_HOME/bin 目錄,不然會找不到 start-hbase.sh 這個文件,就會出現錯誤

(2)查看進程

咱們能夠經過 jps 來查看當前 HBase 的進程:

 
 
 

(3)中止 HBase 服務

輸入 ./stop-hbase.sh

 

4.2 僞分佈模式運行

(1)啓動和查看進程

前面咱們提到過,僞分佈模式下,必須先確保 HDFS 已經啓動。所以,咱們先啓動 HDFS,輸入命令: ./start-all.sh

 

使用 jps 查看目前 Hadoop 的進程:

 
 

HDFS 成功啓動以後,咱們再啓動 HBase,這裏和單機模式下啓動 HBase 的方法同樣,輸入命令: ./start-hbase.sh

 

此時再使用 jps查看,能夠看到多了HBase的相關進程:

 

(2)進入 HBase Shell

經過HBase Shell用戶能夠方便地建立、刪除以及修改表,還能夠向表中添加數據、列出表中的相關相信等。

 

輸入 help 來查看其所支持的命令,能夠根據本身的須要選擇。

 

 

輸入 exit 退出shell

 

(3)中止 HBase

根據依賴關係,咱們須要先關閉HBase, ./stop-hbase.sh

 

經過 jps 能夠看到,HBase相關的進程沒有了:

 

再關閉HDFS, ./stop-all.sh.

 

最後,再經過 jps 發現 HDFS 的進程也沒有了:

 



 

實例配置:

[root@hadoop000 conf]# cat hbase-site.xml 

<configuration>
        
          <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop000:8020/hbase</value>  //這個端口必須與hadoop  core-site.xml 配置文件下 端口匹配
    </property>


     <property>
        <name>hbase.master.info.port</name>
        <value>60010</value>
 </property>


    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

</configuration>

  

[root@hadoop000 conf]# cat hbase-env.sh 

*****

export JAVA_HOME=/home/JDK/jdk1.8.0_181

export HBASE_MANAGES_ZK=true

*****

  

[root@hadoop000 conf]# cat regionservers 
hadoop000

  

成功啓動後 驗證 

[root@hadoop000 hadoop]# jps
15760 ResourceManager
19235 Jps
15461 DataNode
18426 HQuorumPeer
15851 NodeManager
15340 NameNode
18493 HMaster
18621 HRegionServer
15614 SecondaryNameNode

相關文章
相關標籤/搜索