概要描述
本篇KB介绍多种情况下,外部服务器访问集群内hyperbase的多种配置方法。
详细说明
本篇文章会详细介绍在集群未开启安全、开启安全的情况下以及对于普通低权限用户,如何去访问hyperbase。
集群未开启安全
1.manager页面上下载tdh-client客户端包,上传至集群外服务器上。
2.上传后解压
tar -xvf tdh-client.tar
3.执行source /*/TDH-Client/init.sh 后,hbase shell即可访问
集群开启安全
1.开启安全后需要重新到manager页面下载新的tdh-client包(开启安全后与未开启时的客户端是不一样的),下载后上传至集群外服务器上
2.在集群外的服务器上新建目录
mkdir -p /etc/hyperbase1/conf/
3.拷贝集群manager节点下的/etc/krb5.conf到集群外tdh client执行机上,放在/etc目录下
4.拷贝集群manager节点下的/etc/hyperbase1/conf中的krb5.conf,jaas.conf,hyperbase.keytab,client-credential.jks到执行机的/etc/hyperbase1/conf中
5.解压后,执行source /****/TDH-Client/init.sh 后,hbase shell即可访问
PS:若不拷贝krb5.conf,jaas.conf,hyperbase.keytab,client-credential.jks等配置文件到/etc及/etc/hyperbase1/conf目录下,hbase shell访问会有如下报错
客户环境有所限制
某些客户出于对生产环境的安全的考虑,会限制普通用户去访问/etc 目录下文件的权限,这种情况下普通用户source init.sh后,执行hbase shell就会出现如上的报错。在这种情况下,进行如下配置即可。
1.下载正确的tdh-client包(安全对应安全的包,非安全对应分安全的包)上传至执行机服务器,按照如上的命令解压。
2.修改客户端包中/****/TDH-Client/conf/hyperbase下的hbase-env.sh脚本
vi /****/TDH-Client/conf/hyperbase/hbase-env.sh
修改export KRB_OPTS部分为客户端包路径下的配置文件路径
如原本配置为指向/etc 目录下的配置文件
export KRB_OPTS="-Djava.security.krb5.conf=/etc/hyperbase1/conf/krb5.conf -Djava.security.auth.login.config=/etc/hyperbase1/conf/jaas.conf"
当前客户端hyperbase相关的配置文件路径为/TDH-Client/conf/hyperbase1/
则修改为
export KRB_OPTS="-Djava.security.krb5.conf=/TDH-Client/conf/hyperbase1/krb5.conf -Djava.security.auth.login.config=/TDH-Client/conf/hyperbase1/jaas.conf"
3.执行source /****/TDH-Client/init.sh 后,hbase shell即可访问
通过java对接访问
此种场景可参考KB https://nj.transwarp.cn:8180/?p=4005