永洪社区
标题:
<永洪tech>YonghongBI连接Hbase数据库
[打印本页]
作者:
永洪tech-lucy
时间:
2018-3-12 10:41
标题:
<永洪tech>YonghongBI连接Hbase数据库
本帖最后由 永洪tech-Lucy 于 2018-3-13 13:08 编辑
近期有许多小伙伴给我倒苦水“连接到 Hbase 报错了
“
,热心的小姐姐现在就给大家支妙招
(, 下载次数: 394)
上传
点击文件名下载附件
第一步:看驱动 (
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
:
…..
这种情况一般是新增加了一些驱动, 与产品自带的驱动版本不一致, 有冲突.
为了解决“驱动冲突”的问题,小姐姐建议对数据库驱动进行排序(重启后生效喔),如下图:
(, 下载次数: 393)
上传
点击文件名下载附件
第二步:看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
认证
:
(, 下载次数: 402)
上传
点击文件名下载附件
用户
:
用户所对应的
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.
该配置文件一般是用于
欢迎光临 永洪社区 (https://club.yonghongtech.com/)
Powered by Discuz! X3.4