写在前边:
目的:从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 服务高级配置代码段(安全阀)
备注:这里要注意的是CDH版本在页面配置时会覆盖掉hue原本默认存在的notebook数据源,所以这里我们填配置内容时不仅要把phoenix的配上,还要把hive,impala等等这些数据源也要从服务器的hue.ini中copy出来,粘进配置框,比如要用hive,例:
2、添加jdbc驱动包,设置环境变量
首先我们需要对应phoenix版本的驱动包,放到hue server所在服务器且可访问的地方,把权限给满(777),例:
- 非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 环境高级配置代码段(安全阀)
3、把我们phoenix目录下修改过后的hbase-site.xml打进phoenix jdbc驱动包,因为我们会修改一些配置,例:
如果这些配置我们没有打进驱动包,在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不支持,下边会讲)
我们去phoenix查询相同数据:
测试一下explain:
phoenix:
hue:
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/