HBase java 错误 - 预期 HEADER=HBas 但收到 HEADER=\x00\x00\x01\x0B

HBase java error - Expected HEADER=HBas but received HEADER=\x00\x00\x01\x0B

我正在尝试从 java 应用程序连接到远程 hbase。

远程hbase版本为2.1.0,比如我本地的hbase-client

代码在另一个cloudera环境下运行良好,唯一的区别是这个环境受kerberos保护,但我在日志中登录成功。

在 RpcServer 日志中,我发现“Expected HEADER=HBas but received HEADER=\x00\x00\x01\x0B from :61866”。

我在 Internet 上找不到任何内容,也不知道要检查什么。

任何关于我应该检查什么的帮助?

网上只发现配置老旧或者配置错误

只有这个对我有用:

org.apache.hadoop.conf.Configuration configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum", "server1, server2, server3");
configuration.set("hbase.zookeeper.property.clientPort", "2181");
configuration.set("hadoop.security.authentication","kerberos");
configuration.set("hbase.security.authentication","kerberos");
configuration.set("hbase.cluster.distributed", true);
configuration.set("hbase.rpc.protection","authentication"); // Check this on your hbase configuration
configuration.set("hbase.regionserver.kerberos.principal", "hbase/_HOST@yourdomain");
configuration.set("hbase.master.kerberos.principal","hbase/_HOST@yourdomain");
UserGroupInformation.setConfiguration(configuration);         
UserGroupInformation.loginUserFromKeytab(youruser, "src/main/resources/key.keytab");