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

[AI分析] <永洪tech>YonghongBI连接Hbase数据库

永洪tech-lucy青铜一 显示全部楼层 发表于 2018-3-12 10:41:15 |阅读模式 打印 上一主题 下一主题
本帖最后由 永洪tech-Lucy 于 2018-3-13 13:08 编辑

近期有许多小伙伴给我倒苦水“连接到 Hbase 报错了,热心的小姐姐现在就给大家支妙招

0.png

第一步:看驱动 (JDK最低为1.7)
1. org.apache.phoenix.queryserver.client.Driver(推荐使用这种方式
表示thin driver,  connects via Phoenix Query Server. 目前产品集成了thin driver的驱动,可以直接使用
2. org.apache.phoenix.jdbc.PhoenixDriver
表示 thick driver, connects directly to Phoenix. 产品没有集成驱动, 这种驱动自身集成了很多第三方的jar, 需要手动添加到产品驱动目录中
驱动导致的常见报错:
(1) 驱动找不到. java.lang.NoClassDefFoundError: Could not initialize class …….
这种情况一般更换为7.5.2的驱动就好了.
(2) 驱动冲突. java.lang.NoSuchMethodError: …..
这种情况一般是新增加了一些驱动, 与产品自带的驱动版本不一致, 有冲突.

为了解决“驱动冲突”的问题,小姐姐建议对数据库驱动进行排序(重启后生效喔),如下图:
1.png



第二步:看URL  (主要针对Thin Driver )
1. 单节点Hbase.
无Kerberos认证:jdbc:phoenix:thin:url=http://<host>:<port> ;serialization=PROTOBUF
开启Kerberos认证: jdbc:phoenix:thin:url=http://<host>:<port> ;serialization=PROTOBUF;principal=<Server_Principal>
2. Hbase集群.
无Kerberos认证:jdbc:phoenix:thin:url=http://<host1>:<port1>,<host2>:<port2> ;serialization=PROTOBUF
开启Kerberos认证: jdbc:phoenix:thin:url=http://<host>:<port> ;serialization=PROTOBUF;principal=<Server_Principal >
3. Hbase集群启动Zookeeper.
无Kerberos认证:
jdbc:phoenix:thin:url=http://<zkQuorum>;serialization=PROTOBUF
开启Kerberos认证:
jdbc:phoenix:thin:url=http://<zkQuorum>;serialization=PROTOBUF;principal=<Server_Principal_of_HiveServer2>
备注:
<Server_Principal_of_HiveServer2>这里的principal是固定不变的, 指的是服务所对应的principal,而不是用户所对应的principal, 比如phoenix@EXAMPLE.COM;
<zkQuorum>是Zookeeper管理的Hbase集群中的各个节点, 一般其中的值为"xxx.xxx.xxx:24002,xxx.xxx.xxx:24002,xxx.xxx.xxx:24002". 其中的"xxx.xxx.xxx"为集群中Zookeeper所在节点的IP,端口默认是24002



第三步:看用户名&密码
无Kerberos认证:用户名密码和普通数据库一样.
开启Kerberos认证:
9.png

    用户:  用户所对应的Kerberos Principal Name.
    密钥文件路径:  KeyTab文件的路径. 比如  /opt/xxx/user.keytab
    Krb5文件路径: Krb5.conf文件的路径. 比如  /opt/xxx/krb5.conf. Windows环境下面名字需要改成Krb5.ini.
    备注:
     Krb5文件一般会放到一个默认的地方, 这样就不需要去配置该项. 如果客户不提供这个文件, 可能他们已经在默认位置放了这个文件. 一般来说, Windows的默认位置是C:\Windows\Krb5.ini或者C:\winnt\Krb5.ini,  Linux的默认位置/etc/Krb5.conf或者 /etc/krb5/krb5.conf
   Jaas文件路径: Jaas文件的路径. 比如 /opt/xxx/jaas.conf. 该配置文件一般是用于


回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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