今天用HBase客户端链接HBase时出错,错误有两个如下:
1、org.apache.zookeeper.client.ZooKeeperSaslClient: SecurityException: java.lang.SecurityException
2、
Call to sun/192.168.0.20:60020 failed on local exception
第一个问题一开始以为是自己ZooKeeper配置有问题呢,然后从新配置了一下还是出问题,忽然想到之前用DataNucleus插件链接HBase时ZooKeeper就没有出错,这应该可以排除是配置问题,随后就找资料,有人说是jar包的问题,然后我检查了下程序中的jar包和HBase中的jar包果然不一样,我HBase中lib文件中的jar包是zookeeper-3.3.2的,而程序中的jar包是zookeeper-3.4.3,把程序中的jar包替换成HBase中lib中的jar包之后第一个错误就消失了。
经过第一个问题的解决方法之后第二个问题我猜想估计也是jar问题,就检查jar包,检查的主要对象是HBase相关的jar包。检查完发现HBase的jar包是hbase-0.92.1.jar,而我的HBase版本稍微低一点,是hbase-0.90.3.jar ,还是上面的步骤把jar包替换之后,第二个错误也解决了。
看来jar的兼容问题确实值得注意,之前用java写程序就有这种情况,在hadoop下这种问题肯定更多,以后要多加注意。