1.什么是phoenix
phoenix是一个在hbase上面实现的基于hadoop的OLTP技术,具有低延迟、事务性、可使用sql、提供jdbc接口的特点。
而且phoenix还提供了hbase二级索引的解决方案,丰富了hbase查询的多样性,继承了hbase海量数据快速随机查询的特点。
2.下载phoenix
到官网 http://phoenix.apache.org/download.html 下载指定版本hbase对应的phoenixjar包
3.安装配置
- 将上面一步下载的文件解压到一个地方
下载后解压,从里面拷贝phoenix-4.11.0-HBase-1.2-server.jar这样一个jar到${HBASE_HOME}/lib/下面 - 添加配置,hbase-site.xml中添加下面配置
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>hbase.region.server.rpc.scheduler.factory.class</name>
<value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
</property>
<property>
<name>hbase.rpc.controllerfactory.class</name>
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory
</value>
</property>
重启hbase集群,启动后,会发现hbase里面多了一些phoenix的系统表。
4.测试
$PHOENIX_HOME/bin/sqlline.py 启动phoenix的命令行
Connected to: Phoenix (version 4.11)
Driver: PhoenixEmbeddedDriver (version 4.11)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
125/125 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:localhost:2181:/hbase> create table test1 (id varchar primary key,f1 varchar);
No rows affected (1.418 seconds)
0: jdbc:phoenix:localhost:2181:/hbase> upsert into test1 values('1','2');
1 row affected (0.047 seconds)
0: jdbc:phoenix:localhost:2181:/hbase> select * from test1;
+-----+-----+
| ID | F1 |
+-----+-----+
| 1 | 2 |
+-----+-----+
1 row selected (0.044 seconds)