hbase + phoenix 单机版安装
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 安装
首先将*.tar.gz解压
*假设得到的文件夹为java
将其移动到/usr/中
java /usr/然后设置环境变量:
vim /etc/profile
打开文件
在结尾处输入:
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
检测版本
java -version
3. hbase 安装
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/