注:該教程轉自廈門大學大數據課程學習總結
一、HBase介紹
HBase是一個分布式的、面向列的開源數據庫,源於Google的一篇論文《BigTable:一個結構化數據的分布式存儲系統》。HBase以表的形式存儲數據,表有行和列組成,列划分為若干個列族/列簇(column family)
HBase的運行有三種模式:單機模式、偽分布式模式、分布式模式。
單機模式:在一台計算機上安裝和使用HBase,不涉及數據的分布式存儲;偽分布式模式:在一台計算機上模擬一個小的集群;分布式模式:使用多台計算機實現物理意義上的分布式存儲。這里出於學習目的,我們只重點討論單機模式和偽分布式模式。
二、安裝並配置HBase
1. HBase安裝
1.1 解壓安裝包hbase-1.1.2-bin.tar.gz至路徑 /usr/local,命令如下:
- sudo tar -zxf ~/下載/hbase-1.1.2-bin.tar.gz -C /usr/local
1.2 將解壓的文件名hbase-1.1.2改為hbase,以方便使用,命令如下:
- sudo mv /usr/local/hbase-1.1.2 /usr/local/hbase
1.3 配置環境變量
將hbase下的bin目錄添加到path中,這樣,啟動hbase就無需到/usr/local/hbase目錄下,大大的方便了hbase的使用。教程下面的部分還是切換到了/usr/local/hbase目錄操作,有助於初學者理解運行過程,熟練之后可以不必切換。
編輯~/.bashrc文件
- vi ~/.bashrc
如果沒有引入過PATH請在~/.bashrc文件尾行添加如下內容:
- export PATH=$PATH:/usr/local/hbase/bin
如果已經引入過PATH請在export PATH這行追加/usr/local/hbase/bin,這里的“:”是分隔符。如下圖:
編輯完成后,再執行source命令使上述配置在當前終端立即生效,命令如下:
- source ~/.bashrc
1.4 添加HBase權限
- cd /usr/local
- sudo chown -R hadoop ./hbase #將hbase下的所有文件的所有者改為hadoop,hadoop是當前用戶的用戶名。
1.5 查看HBase版本,確定hbase安裝成功,命令如下:
- /usr/local/hbase/bin/hbase version
命令執行后,輸出信息截圖如下:
看到以上輸出消息表示HBase已經安裝成功,接下來將分別進行HBase單機模式和偽分布式模式的配置。
2. HBase配置
HBase有三種運行模式,單機模式、偽分布式模式、分布式模式下面以偽分布式模式為例。
偽分布式模式配置
1.配置/usr/local/hbase/conf/hbase-env.sh。命令如下:
- vi /usr/local/hbase/conf/hbase-env.sh
配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK.
HBASE_CLASSPATH設置為本機Hadoop安裝目錄下的conf目錄(即/usr/local/hadoop/conf)
- export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
- export HBASE_CLASSPATH=/usr/local/hadoop/conf
- export HBASE_MANAGES_ZK=true
截圖如下:
2.配置/usr/local/hbase/conf/hbase-site.xml
用命令vi打開並編輯hbase-site.xml,命令如下:
- vi /usr/local/hbase/conf/hbase-site.xml
修改hbase.rootdir,指定HBase數據在HDFS上的存儲路徑;將屬性hbase.cluter.distributed設置為true。假設當前Hadoop集群運行在偽分布式模式下,在本機上運行,且NameNode運行在9000端口。
- <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指定HBase的存儲目錄;hbase.cluster.distributed設置集群處於分布式模式.
3. 接下來測試運行HBase。
第一步:首先登陸ssh,之前設置了無密碼登陸,因此這里不需要密碼;再切換目錄至/usr/local/hadoop ;再啟動hadoop,如果已經啟動hadoop請跳過此步驟。命令如下:
- ssh localhost
- cd /usr/local/hadoop
- ./sbin/start-dfs.sh
輸入命令jps,能看到NameNode,DataNode和SecondaryNameNode都已經成功啟動,表示hadoop啟動成功,截圖如下:
第二步:切換目錄至/usr/local/hbase;再啟動HBase.命令如下:
- cd /usr/local/hbase
- bin/start-hbase.sh
啟動成功,輸入命令jps,看到以下界面說明hbase啟動成功
進入shell界面:
- bin/hbase shell
截圖如下:
4.停止HBase運行,命令如下:
- bin/stop-hbase.sh
注意:如果在操作HBase的過程中發生錯誤,可以通過{HBASE_HOME}目錄(/usr/local/hbase)下的logs子目錄中的日志文件查看錯誤原因。
這里啟動關閉Hadoop和HBase的順序一定是:
啟動Hadoop—>啟動HBase—>關閉HBase—>關閉Hadoop