找文章 / 找答案
精选问答 更多内容

[AI分析] 连接hbase及常见报错

寻找新技能 显示全部楼层 发表于 2021-3-31 17:41:45 |阅读模式 打印 上一主题 下一主题

驱动:org.apache.phoenix.jdbc.PhoenixDriver
路径:jdbc:phoenix:服务器地址:端口号
*****我们用Phoenix jdbc 去做sql query,需要安装一个Phoenix才行.url处的端口是Phoenix的hbase是一个行键查询,不是传统的sql查询。需要有一个Phoenix才能把hbase的语句转化为传统的sql查询。
常见报错1:
连接报错:Test failed:detail reason:java.net.ConnectException:Connection timed out
解决方法:
数据库驱动版本和数据库版本不一致,或者数据库有限制,驱动的版本过高(合理使用匹配版本的驱动)
常见报错2:
连接hbase报错:
java.lang.illegalargumentException:No enum constant org.apache.calcite.avatica.remote.Driver.Serialization.TSDB
解决方法:
修改url,jdbc:phoenix:thin:url=http://192.168.1.122:8765;serialization=TSDB
将 serialization=TSDB改为serialization=PROTOBUF 测试报错
常见问题3:
场景:连接Hbase可以测试成功,刷新表读不出来。确定此表是存在的,直接写SQL语句也会出现报错
解决方法:
我们产品用的phoenix去查hbase. 如果客户是直接用hbase创建的表,在我们永洪中是读取不到的。需要通过phoenix去创建表,phoenix可以理解为类似pl/sql类的工具,是hbase的查看工具.
通过phoenix创建表: 1.切换到phoenix的bin目录   cd  /home/Garen/apache-phoenix-4.8.0-HBase-1.1-bin/bin
                                  2.启动phoenix,在里面进行SQL查询和创建./sqlline.py
                                  3.创建schema  create schema celina;
                                  4.切换schema  use celina;
                                  5.新建表 create table tesy(id integer primary key);

     在phoenix上创建表成功之后,在永洪中就可以读到对应的表。
常见问题4:

解决方法Hbase上配置phoenix.schema.isNamespaceMappingEnabled属性为true

回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部