hbase上部署phoenix

来源:互联网 发布:西部数码域名怎么备案 编辑:程序博客网 时间:2024/05/16 10:16

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: trueTransaction isolation: TRANSACTION_READ_COMMITTEDBuilding list of tables and columns for tab-completion (set fastconnect to true to skip)...125/125 (100%) DoneDonesqlline version 1.2.00: 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)