Phoenix链接hbase尝试

六月ゝ 毕业季﹏ 提交于 2020-01-22 17:29:48

一、什么是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

https://blog.csdn.net/qq_33187206/article/details/80824414

https://blog.csdn.net/daerzei/article/details/80356394

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!