一、什么是Phonenix?
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。
Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。
Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好:
将SQL编译成原生的HBase scans。
确定scan关键字的最佳开始和结束
让scan并行执行
基本准备条件:
hbase 版本1.2.6,对应的phoenix版本为4.14.1
下载apache-phoenix-4.14.1-HBase-1.2-bin,解压后可得到
接着就是将
拷贝到hbase的lib目录下;
然后将hbase是hbase-site.xml拷贝到phoenix下的bin目录下;
启动zookeeper
启动Hadoop
启动hbase
然后进入到Phoenix的bin目录下;
输入 ./sqlline.py master:2181(zookeeper的主节点)
接着可以看到一些语句;
(1)失败情况下
apache phoenix Table 'SYSTEM.CATALOG' was not found
这种情况下可以采取
- hbase zkcli 查看 /hbase/table 下面有没有SYSTEM.CATALOG
- hbase hbck -repair
- hbase zkcli 再次查看 /hbase/table 下面有没有SYSTEM.CATALOG
方法2:/bin/ hbase zkcli (此种方法可行)
ls /hbase/table
如果有下面的表:SYSTEM.CATALOG, SYSTEM.SEQUENCE, SYSTEM.STATS, and SYSTEM.FUNCTION,则执行如下命令
rmr /hbase/table/SYSTEM.CATALOG
rmr /hbase/table/SYSTEM.SEQUENCE
rmr /hbase/table/SYSTEM.STATS
rmr /hbase/table/SYSTEM.FUNCTION
方法3:/bin/hbase clean --cleanAll
在执行上述命令之前:先关闭hbase(包括HMaster和regionServer)
3.重新启动hbase
4.通过 ./sqlline.py 进入phoenix,系统会自动创建Phoenix的系统表
参考文档:
https://blog.csdn.net/kongxx/article/details/87996363
来源:CSDN
作者:QSyiren
链接:https://blog.csdn.net/zp17764507932/article/details/104053988