【问题标题】:HBase java error - Expected HEADER=HBas but received HEADER=\x00\x00\x01\x0BHBase java 错误 - 预期 HEADER=HBas 但收到 HEADER=\x00\x00\x01\x0B
【发布时间】:2021-11-10 09:00:46
【问题描述】:

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

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

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

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

我在互联网上找不到任何东西,我不知道要检查什么。

关于我应该检查什么有什么帮助吗?

【问题讨论】:

  • 您好,您解决了这个问题吗?我面临同样的问题。谢谢
  • @WilsonHo 是的,我会在一小时内发布答案
  • @WilsonHo 我发布了答案

标签: java hbase cloudera


【解决方案1】:

网上我发现只有旧的或错误的配置。

只有这个对我有用:

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");

【讨论】:

  • 您好,谢谢您的回答,但您能向我解释一下为什么会出现这个问题吗?因为我的配置完全一样,但仍然报错?
  • 其实我不知道为什么会出现这个问题。我有一个不同的配置,比如使用从 gui 下载的 hbase 文件配置或我在互联网上找到的另一组配置。 hbase.rpc.protection 的值很重要,应该在你的 hbase 配置中检查它。
  • 您还需要检查依赖项中的 hbase-client 版本,该版本必须与您的 cloudera 环境兼容。我将我的从 2.1.0 更改为 2.1.0-cdh6.1.1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2023-03-16
相关资源
最近更新 更多