Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 知乎專欄 | 視頻教程 | About

第 16 章 Apache Hbase

目錄

16.1. 安裝 Apache Hbase
16.1.1. 單機模式安裝
16.1.2. 偽分散式模式
16.1.3. 分散式模式部署
16.1.4. 運維技巧
16.2. 配置 Apache Hbase
16.2.1. hbase-env.sh
16.2.2. hbase-site.xml
16.3. Hbase Shell
16.3.1. 表操作
16.4. Web UI
16.5. Phoenix
16.5.1. 安裝 Phoenix
16.5.2. sqlline.py 命令行界面
16.5.2.1. 幫助信息
16.5.2.2. 創建表
16.5.3. SQuirreL SQL Client
16.6. FAQ
16.6.1. HBaseConfTool : Unsupported major.minor version 51.0
16.6.2. ignoring option PermSize=128m; support was removed in 8.0

16.1. 安裝 Apache Hbase

注意:Apache Hbase 不能使用 OpenJDK 啟動,需要去 Oracle 網站下載 Server JRE

16.1.1. 單機模式安裝

如果你是第一次安裝Hbase,建議你從單機安裝開始,這樣成功率比較高,不會受挫。Hbase 不比關係型資料庫複雜,只是安裝比較麻煩,一旦安裝號使用起來還是很容易上手的,請直接粘貼複製下面的命令即可完成安裝:

			
cd /usr/local/src
wget http://mirrors.hust.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz

tar zxf hbase-1.2.6-bin.tar.gz
cp hbase-1.2.6/conf/hbase-site.xml{,.original}
mv hbase-1.2.6 /srv/apache-hbase-1.2.6
ln -s /srv/apache-hbase-1.2.6 /srv/apache-hbase

cp /srv/apache-hbase/conf/hbase-env.sh{,.original}
cat > /srv/apache-hbase/conf/hbase-env.sh <<EOF
export JAVA_HOME=/srv/java
#export HBASE_CLASSPATH=
export HBASE_MANAGES_ZK=true
EOF

cat > /srv/hbase/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>  
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
<configuration>  
	<property>  
		<name>hbase.rootdir</name>  
		<value>file:///tmp/hbase-${user.name}</value>  
	</property>  
</configuration>
EOF
			
			

啟動 Apache Hbase

/srv/apache-hbase/bin/start-hbase.sh
			

進入 Hbase shell

/srv/apache-hbase/bin/hbase shell
			

關閉 Hbase

/srv/apache-hbase/bin/stop-hbase.sh
			

16.1.2. 偽分散式模式

單機模式基本可能滿足我們的學習需要,但無法滿足更複雜的需求,例如整合Hive等其他軟件,這時我們就需要借助 Hadoop 的HDFS功能實現與其他軟件的整合。所謂的偽分散式,就是只有一個Hbase節點,即Master。

這裡我假設 Hadoop 已經正確安裝,無論你採用什麼模式只要能提供 hdfs 服務處即可。Hadoop 安裝可以參考作者的相關文檔。

首先編輯 conf/hbase-site.xml 配置檔案,增加以下配置:

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

hbase.cluster.distributed 屬性值設置為 true HBase 將運行于分散式模式

然後配置 hbase.rootdir 屬性值,指向 HDFS 地址。

			
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://localhost:9000/hbase</value>
</property>
			
			

現在啟動 Hbase , 如果正常使用 jps 可以下面三個綫程

			
[hadoop@netkiller conf]$ su - hadoop -c "/srv/apache-hbase/bin/start-hbase.sh"
[hadoop@netkiller conf]$ jps | egrep "(HMaster|HRegionServer|HQuorumPeer)"
			
			

如果啟動正常,你將會看到 HDFS 中的 Hbase目錄。

			
[hadoop@netkiller ~]$ /srv/hadoop/bin/hdfs dfs -ls /hbase
Found 7 items
drwxr-xr-x   - hadoop supergroup          0 2017-06-28 21:55 /hbase/.tmp
drwxr-xr-x   - hadoop supergroup          0 2017-06-28 21:55 /hbase/MasterProcWALs
drwxr-xr-x   - hadoop supergroup          0 2017-06-28 21:55 /hbase/WALs
drwxr-xr-x   - hadoop supergroup          0 2017-06-28 21:55 /hbase/data
-rw-r--r--   3 hadoop supergroup         42 2017-06-28 21:55 /hbase/hbase.id
-rw-r--r--   3 hadoop supergroup          7 2017-06-28 21:55 /hbase/hbase.version
drwxr-xr-x   - hadoop supergroup          0 2017-06-28 21:55 /hbase/oldWALs
			
			

16.1.3. 分散式模式部署

上一節所講的偽分不出,就是只有一個Master節點,而真正的分散式摸就是每個節點均獨立部署,實現可伸縮,水平擴展,但作為例子這裡我們僅僅採用最小化節點配置。

16.1.4. 運維技巧

檢查 Hbase 綫程是否啟動

[neo@netkiller conf]$ jps | grep HMaster
17719 HMaster