OpenTSDB与kerberized HBase的集成

问题描述:

我想在OpenTSDB上做一些POC。我已经按照安装说明安装了OpenTSDB,但开始时间很艰难。我使用启用了Kerberos的HDP环境,我将OpenTSDB与Kerberized HBase集成,但面临以下异常。如果有人已经将OpenTSDB使用Kerberos HBase的,请指导..OpenTSDB与kerberized HBase的集成

例外:

2017-06-07 14:07:14,254 INFO [main-SendThread(ZKIP1:2181)] ClientCnxn: Opening socket connection to server ZKIP1/192.xxx.xxx.xxx:2181. Will not attempt to authenticate using SASL (unknown error) 

控制台O/P:

2017-06-07 14:07:14,233 INFO [main] ZooKeeper: Client environment:java.library.path=/usr/local/hawq/./lib:/usr/local/hawq/./ext/python/lib::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 
    2017-06-07 14:07:14,233 INFO [main] ZooKeeper: Client environment:java.io.tmpdir=/tmp 
    2017-06-07 14:07:14,233 INFO [main] ZooKeeper: Client environment:java.compiler=<NA> 
    2017-06-07 14:07:14,233 INFO [main] ZooKeeper: Client environment:os.name=Linux 
    2017-06-07 14:07:14,233 INFO [main] ZooKeeper: Client environment:os.arch=amd64 
    2017-06-07 14:07:14,233 INFO [main] ZooKeeper: Client environment:os.version=2.6.32-431.29.2.el6.x86_64 
    2017-06-07 14:07:14,234 INFO [main] ZooKeeper: Client environment:user.name=user 
    2017-06-07 14:07:14,234 INFO [main] ZooKeeper: Client environment:user.home=/home/user 
    2017-06-07 14:07:14,234 INFO [main] ZooKeeper: Client environment:user.dir=/home/user/opentsdb-2.3.0 
    2017-06-07 14:07:14,235 INFO [main] ZooKeeper: Initiating client connection, connectString=ZKIP1:2181,ZKIP3:2181,ZKIP2:2181 sessionTimeout=5000 wa[email protected] 
2017-06-07 14:07:14,254 INFO [main-SendThread(ZKIP1:2181)] ClientCnxn: Opening socket connection to server ZKIP1/192.xxx.xxx.xxx:2181. Will not attempt to authenticate using SASL (unknown error) 
    2017-06-07 14:07:14,257 INFO [main] HBaseClient: Need to find the -ROOT- region 
    2017-06-07 14:07:14,263 INFO [main-SendThread(ZKIP1:2181)] ClientCnxn: Socket connection established to ZKIP1/192.xxx.xxx.xxx:2181, initiating session 
    2017-06-07 14:07:14,270 INFO [main-SendThread(ZKIP1:2181)] ClientCnxn: Session establishment complete on server ZKIP1/192.xxx.xxx.xxx:2181, sessionid = 0x35ae21cf9870828, negotiated timeout = 5000 
    2017-06-07 14:07:14,285 ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist! 
    2017-06-07 14:07:15,310 ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist! 
    2017-06-07 14:07:16,329 ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist! 
    2017-06-07 14:07:17,349 ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist! 
    2017-06-07 14:07:18,370 ERROR [main-EventThread] HBaseClient: The znode for the -ROOT- region doesn't exist! 
+0

OpenTSDB使用 “AsyncHBase” 的客户端,这是不被Apache HBase的项目支持,并没有支持Kerberos直到最近 - 比照http://opentsdb.github.io/asynchbase/docs/build/html/configuration.html –

+0

我指的是https://github.com/OpenTSDB/opentsdb/issues/683 ..任何人都可以帮助我,我应该如何通过 -Djava.security.auth.login.config =/home/user/opentsdb/opentsdb.jaas命令与./build/tsdb tsd – nilesh1212

+0

我认为我的kerberos问题现在已解决,我可以在我的日志中看到成功登录。 '2017-06-12 16:12:59,756 INFO [main-SendThread(ZK1:2181)]登入:登入成功 2017-06-12 16:12:59,771信息[main-SendThread(ZK1:2181)] ZooKeeperSaslClient:客户端将使用GSSAPI作为SASL机制。 2017-06-12 16:12:59,922信息[线程1]登录:TGT有效开始于:星期一6月12 14:06:15 CEST 2017'。但是现在我正面临'HBaseClient:-ROOT-区域的znode不存在!任何关于这个错误的想法。 – nilesh1212

我能够使用OpenTSDB连接到kerberos HBase。我列出了我已经完成的连接kerberos HBase的配置更改。

1)配置更改'opentsdb.conf',请确保此文件在运行tsdb命令时位于路径中。

tsd.network.port = 4242 
tsd.storage.hbase.zk_basedir = /hbase-secure 
tsd.storage.hbase.zk_quorum = ZKhostname1,ZKhostname2,ZKhostname3 
hbase.security.auth.enable=true 
hbase.security.authentication=kerberos 
hbase.kerberos.regionserver.principal=hbase/[email protected] 
hbase.sasl.clientconfig=Client 

2)中序,以避免类路径/ JVM的问题,我已经做了在'tsdb'文件中的所有类路径和JVM配置位于'/home/user/opentsdb-2.3.0/build'

# Add the src dir so we can find logback.xml 
CLASSPATH="$CLASSPATH:$abs_srcdir/src:/usr/hdp/2.4.2.0-258/zookeeper/lib/:/usr/hdp/2.4.2.0-258/zookeeper/:/etc/hadoop/2.4.2.0-258/0/:/usr/hdp/2.4.2.0-258/hbase/:/etc/hbase/2.4.2.0-258/0/:/home/user/phoenix-4.4.0-HBase-1.1-client.jar" 

JVMARGS=${JVMARGS-'-Djava.security.krb5.conf=/etc/krb5.conf -Dhbase.security.authentication=kerberos -Dhbase.kerberos.regionserver.principal=hbase/[email protected] -Dhbase.rpc.protection=authentication -Dhbase.sasl.clientconfig=Client -Djava.security.auth.login.config=/home/user/opentsdb-jaas.conf -enableassertions -enablesystemassertions'} 

3)opentsdb-Jaas.conf档案

Client { 
com.sun.security.auth.module.Krb5LoginModule required 
useKeyTab=false 
useTicketCache=true; 
} 

4)用于运行opentsdb tsd实例的命令,请注意我们可以覆盖命令l中配置的一些属性'opentsdb.conf'国家统计局。

./build/tsdb tsd --port=4242 --staticroot=/home/user/opentsdb-2.3.0/build/staticroot --cachedir=/home/user/opentsdb-2.3.0/build/cache-dir --zkquorum=ZKhostname1:2181,ZKhostname2:2181,ZKhostname3:2181

您可能会发现following steps有用。两个数据库都从Java客户端连接到HBase,但OpenTSDB中的Java客户端可能不同。

+0

我认为我的kerberos问题现在已经解决,我可以在我的日志中看到成功登录。 '2017-06-12 16:12:59,756信息[main-SendThread(ZK1:2181)]登录:已成功登录。 2017-06-12 16:12:59,771 INFO [main-SendThread(ZK1:2181)] ZooKeeperSaslClient:客户端将使用GSSAPI作为SASL机制。 2017-06-12 16:12:59,922信息[线程1]登录:TGT有效开始于:星期一6月12 14:06:15 CEST 2017'。但是现在我正面临'HBaseClient:-ROOT-区域的znode不存在!任何关于这个错误的想法。 – nilesh1212