HBase远程Java客户端尝试通过随机端口进行身份验证

HBase远程Java客户端尝试通过随机端口进行身份验证,hbase,Hbase,我想将本地java/scala进程连接到远程HBase服务器(v1.1.2)(在docker中)。我有以下代码: val config = HBaseConfiguration.create() BasicConfigurator.configure() config.set("hbase.zookeeper.quorum", "192.168.99.100") config.set("hbase.zookeeper.property.clientPort","2181") config.set

我想将本地java/scala进程连接到远程HBase服务器(v1.1.2)(在docker中)。我有以下代码:

val config = HBaseConfiguration.create()
BasicConfigurator.configure()
config.set("hbase.zookeeper.quorum", "192.168.99.100")
config.set("hbase.zookeeper.property.clientPort","2181")
config.set("hbase.master", "192.168.99.100:9090")
val connection = ConnectionFactory.createConnection(config)
在docker中,我打开了以下端口:8085、2181、8080、9090、16010

它一直工作到日志中的这一行:

735 [hconnection-0x471a9022-shared--pool1-t1] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient  - Use SIMPLE authentication for service ClientService, sasl=false
747 [hconnection-0x471a9022-shared--pool1-t1] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient  - Connecting to docker-hbase/192.168.99.100:39160
896 [main] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient  - Use SIMPLE authentication for service MasterService, sasl=false
896 [main] DEBUG org.apache.hadoop.hbase.ipc.AbstractRpcClient  - Connecting to docker-hbase/192.168.99.100:43454
我的问题是,每次我重新启动服务时,此ClientService和MasterService都会尝试连接到不同的端口(在本例中为39160和43454),因此我无法修复要在docker中打开的端口。

这是不正确的:

val connection = ConnectionFactory.createConnection(hconf) 
应该是:

val connection = ConnectionFactory.createConnection(config)

您需要以伪分布式模式启动HBase。有关详细信息,请参见此处我的答案

谢谢。我试试这个。