有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

HBase java错误预期标头=HBas,但收到标头=\x00\x00\x01\x0B

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

远程hbase版本为2.1.0,例如我的本地hbase客户端

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

在RpcServer日志中,我发现“预期的头=HBA,但从:61866收到头=\x00\x00\x01\x0B”

我在网上找不到,也不知道该查什么

有什么需要我检查的吗


共 (1) 个答案

  1. # 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");