HUE 集成 Apache Phoenix

写在前边:

目的:从Hue Web UI 直接能够访问Apache Phoenix的数据

适用:所有可以通过jdbc连接的数据库都可以采用以下这个流程,调整一下jdbc串及jar包即可

 


配置流程:

1、添加notebook数据源

  • 非CDH版本:直接修改hue.ini配置文件,添加如下phoenix jdbc配置:

[notebook]

  [[interpreters]]

    [[[phoenix]]]

      # The name of the snippet.

      name=Phoenix JDBC

      # The backend connection to use to communicate with the server.

      interface=jdbc

    options='{"url": "jdbc:phoenix:localhost:2181/hbase", "driver": "org.apache.phoenix.jdbc.PhoenixDriver", "user": "", "password": ""}'

  • CDH版本:跟上面同样的配置内容,配置路径为Cloudera Manager -> HUE -> Configuration ->hue_safety_valve.ini 的 Hue 服务高级配置代码段(安全阀)

HUE 集成 Apache Phoenix

备注:这里要注意的是CDH版本在页面配置时会覆盖掉hue原本默认存在的notebook数据源,所以这里我们填配置内容时不仅要把phoenix的配上,还要把hive,impala等等这些数据源也要从服务器的hue.ini中copy出来,粘进配置框,比如要用hive,例:

HUE 集成 Apache Phoenix

             

2、添加jdbc驱动包,设置环境变量

首先我们需要对应phoenix版本的驱动包,放到hue server所在服务器且可访问的地方,把权限给满(777),例:

HUE 集成 Apache Phoenix

  • 非CDH版本

直接配置环境变量,vi /etc/profile,添加如下内容:

# Phoenix

export PHOENIX_HOME=/opt

export CLASSPATH=$PHOENIX_HOME/phoenix-4.13.2-cdh5.11.2-client.jar:$CLASSPATH

保存退出即可,然后source /etc/profile,验证生效即可

              

  •   CDH版本

配置路径为Cloudera Manager -> HUE -> Configuration -> Hue Server 环境高级配置代码段(安全阀)

HUE 集成 Apache Phoenix

 

 

3、把我们phoenix目录下修改过后的hbase-site.xml打进phoenix jdbc驱动包,因为我们会修改一些配置,例:

HUE 集成 Apache Phoenix

如果这些配置我们没有打进驱动包,在hue访问phoenix查询时会报错:

Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled,Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enable

 

把配置文件打进jar包:

jar uf  phoenix-4.13.2-cdh5.11.2-client.jar hbase-site.xml

 

4、重启hue

5、测试验证

配置完之后我们可以直接通过如下链接直接访问phoenix:

http://xxxxxx:8888/notebook/editor?type=phoenix

我们查一条数据:(请忽视左边栏,phoenix不支持,下边会讲)

HUE 集成 Apache Phoenix

我们去phoenix查询相同数据:

 

HUE 集成 Apache Phoenix

 

测试一下explain:

 

phoenix:

HUE 集成 Apache Phoenix

 

hue:

HUE 集成 Apache Phoenix

 

OK,查询没什么问题

 

6、hue访问phoenix存在问题

  • 只能查不能插,不过对于正常业务来说用hue更多只是数据查询
  • 不能像hive那样在左边栏能看到数据库、表,因为phoenix不支持show命令,有点扯

 

7、总结

以上hue连接的方法基本适用能通过jdbc连接的数据库

 

参考:http://gethue.com/custom-sql-query-editors/

参考:http://www.irfanelahi.com/data-science/cloudera-hue-jdbc-database/