phoenix官网:phoenix.apache.org
Apache Phoenix enables OLTP and operational analytics in Hadoop for low latency applications by combining the best of both worlds:
- the power of standard SQL and JDBC APIs with full ACID transaction capabilities and
- the flexibility of late-bound, schema-on-read capabilities from the NoSQL world by leveraging HBase as its backing store
Apache Phoenix is fully integrated with other Hadoop products such as Spark, Hive, Pig, Flume, and Map Reduce.
1部署
注:此部署在已部署完HBase的前提下操作,直接使用官网提供的安装包phoenix-4.14.0-cdh5.14.2 。我的hadoop 环境是cdh5.16.1 ,可以在官网下载cdh版本的安装包,如果没有对应的cdh版本,可以选择与hadoop安装环境最接近的版本。我这里使用伪分布式安装部署。
1.1下载并解压安装包
[hadoop@hadoop001 software]$ tar -xzvf apache-phoenix-4.14.0-cdh5.14.2-bin.tar.gz -C ../app/
[hadoop@hadoop001 software]$ cd ../app/
[hadoop@hadoop001 app]$ ln -s apache-phoenix-4.14.0-cdh5.14.2-bin phoenix
1.2配置phoenix和HBase
[hadoop@hadoop001 phoenix]$ cd /home/hadoop/app/phoenix
[hadoop@hadoop001 phoenix]$ ①cp phoenix-4.14.0-cdh5.14.2-server.jar ../hbase/lib/
[hadoop@hadoop001 phoenix]$ cd ../
[hadoop@hadoop001 app]$ cd hbase
[hadoop@hadoop001 hbase]$ cd conf/
[hadoop@hadoop001 conf]$ ②vi hbase-site.xml
添加以下配置参数:
<property>
<name>hbase.table.sanity.checks</name>
<value>false</value>
</property>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>phoenix.schema.mapSystemTablesToNamespace</name>
<value>true</value>
</property>
[hadoop@hadoop001 hbase]$ bin/stop-hbase.sh ③重启生效以上参数和jar包
[hadoop@hadoop001 hbase]$ bin/start-hbase.sh
hadoop@hadoop001 hbase]$ jps 检查是否成功启动HBASE
[hadoop@hadoop001 hbase]$ cd ../phoenix
[hadoop@hadoop001 phoenix]$ cd bin
[hadoop@hadoop001 bin]$ ll
[hadoop@hadoop001 bin]$ rm -f hbase-site.xml
[hadoop@hadoop001 bin]$ ④ln -s /home/hadoop/app/hbase/conf/hbase-site.xml hbase-site.xml
[hadoop@ruozedata001 bin]$ python -V
Python 2.7.5
[hadoop@ruozedata001 bin]$⑤ ./sqlline.py hadoop001:2181 启动phoenix
133/133 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:ruozedata001:2181> 出现这个表明部署成功
使用 !table 可以查看到phoenix 在HBase 中建的表
!help可以查看帮助信息
phoenix伪分布式部署非常简单,如果是HA环境,需要把core-site.xml 、hdfs-site.xml ln -s 链接到$PHOENIX_HOME/bin/