1. 環境:
- centos 6.5
- jdk 1.8.0 http://www.oracle.com/technetwork/java/javase/downloads/index.htm
- apache-phoenix-4.8.1-Hbase-1.1bin.tar.gz http://mirrors.hust.edu.cn/apache/phoenix/apache-phoenix-4.8.1-HBase-1.1/bin/apache-phoenix-4.8.1-HBase-1.1-bin.tar.gz
- hbase-1.1.7-bin.tar.gz http://mirrors.hust.edu.cn/apache/hbase/1.1.7/hbase-1.1.7-bin.tar.gz
2. JDK 安裝
a、解壓縮到安裝目錄 /usr/local
[root@Hadoop- 01 ~]$ tar -xzvf hbase-1.2.2-bin.tar.gz -C /usr/local [root@Hadoop- 01 ~]$ mv hbase-1.2.2 hbase
b、修改conf/hbase-env.sh
[root@Hadoop- 01 ~]$vi conf/hbase-env.sh export JAVA_HOME=/usr/java/jdk1.7.0_75/ export HBASE_CLASSPATH=/usr/local/hbase/conf export HBASE_MANAGES_ZK=true
c、修改conf/hbase-site.xml
[root@Hadoop- 01 ~]$ conf/hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>file:/usr/local/hbase</value> </property> </configuration>
d、配置hbase環境變量
[root@Hadoop- 01 ~]$ vi /etc/profile export HBASE_HOME=/usr/local/hbase/ export PATH=$JAVA_HOME/bin:$HBASE_HOME/bin:$PATH [root@Hadoop- 01 ~]$ source /etc/profile #保存使環境變量立即生效
e、啟動
[root@Hadoop- 01 hbase]$ bin/start-hbase.sh
f、檢驗HBase是否正常啟動:
① 在bin目錄執行hbase shell,正常的話會進入hbase命令行模式,即 hbase(main):001:0>
② 輸入 create 'user' ,'personalinfo',正常的話會出現類似 0 row(s) in 1.3200 seconds 這樣的結果
③ 繼續輸入 list,正常的話會列出我們剛剛創建的user表。
g、打開瀏覽器訪問localhost:16010/master-status,可以看到hbase的一些狀態信息。
h、注意問題
1. 查看系統hostname, 看是否為localhost, 也可以添加自定義的 2. 查看 /etc/hosts , 是否 配置了 127.0.0.1 localhost 這個映射一定要配置正確,否則啟動hbase時,會報錯。
4. 安裝 phoenix
可參考官方說明:http://phoenix.apache.org/installation.html
Installation
To install a pre-built phoenix, use these directions:
- Download and expand the latest phoenix-[version]-bin.tar.
- Add the phoenix-[version]-server.jar to the classpath of all HBase region server and master and remove any previous version. An easy way to do this is to copy it into the HBase lib directory (use phoenix-core-[version].jar for Phoenix 3.x)
- Restart HBase.
- Add the phoenix-[version]-client.jar to the classpath of any Phoenix client.
a. 下載相關版本 (注:要與 hbase 版本相對應)
b. 解壓到安裝目錄
c. 把目錄下的 phoenix-4.8.1-HBase-1.1-server.jar 自制到 hbase 目錄下的 lib/ 里面
d. 重啟hbase
e. 運行phoenix , 如下
[xxx@localhost bin]$ ./sqlline.py localhost Setting property: [incremental, false] Setting property: [isolation, TRANSACTION_READ_COMMITTED] issuing: !connect jdbc:phoenix:localhost none none org.apache.phoenix.jdbc.PhoenixDriver Connecting to jdbc:phoenix:localhost 16/11/08 18:48:31 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Connected to: Phoenix (version 4.8) Driver: PhoenixEmbeddedDriver (version 4.8) Autocommit status: true Transaction isolation: TRANSACTION_READ_COMMITTED Building list of tables and columns for tab-completion (set fastconnect to true to skip)... 88/88 (100%) Done Done sqlline version 1.1.9 0: jdbc:phoenix:localhost>
用Phoenix Java api操作HBase
這個過程就想是JDBC一樣使用就可以了。
①先將phoenix的 core.jar包 和 phoenix的client.jar 包放到lib里。
②創建連接,過程和mysql類似
public Connection GetConnection(){ Connection cc = null; String driver = "org.apache.phoenix.jdbc.PhoenixDriver"; //String url = "jdbc:phoenix:192.168.206.21:2181"; try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } if (cc == null) { try { cc = DriverManager.getConnection(url); } catch (SQLException e) { e.printStackTrace(); } } return cc; }
更詳細的說明,請瀏覽官網 http://apache.org/