Hbase客户端硬编码区域服务器

时间:2020-07-14 08:51:40

标签: docker hbase

我正在尝试配置hbase客户端以连接到在Docker容器中运行的HBase。出于集成测试的目的,我们可以对主服务器和区域服务器进行硬编码(它们都放置在同一地址)。

我们使用cloudera发行版,但我想这应该是相同的。我已经在org.apache.hadoop.conf.Configuration中定义了“ hbase.master”

configuration.set("hbase.master", config.getMaster());

并且似乎被接受(在SO中这里提到的其他问题都提到了这一点)。

但是尝试按照http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.4/book/config.files.html

中的说明对区域服务器执行类似的操作

configuration.set("hbase.regionserver.port", config.getRegionserver());

我可以看到仍然是从Zookeeper检索到的,因为错误显示无法连接到60002的套接字,该套接字是regionserver端口号(我在配置中输入的是与Docker中声明的端口号不同的端口。 / p>

1 个答案:

答案 0 :(得分:0)

首先将该条目放置在/ etc / hosts中,因此hbase服务器名称指向环回地址。

由于我们不想在CI环境中修改配置文件,因此发现的解决方法是根据此答案来设置自己的主机名解析器 https://stackoverflow.com/a/43870031/3774176

仅在JDK8中可用,但除此之外,还有一个类似的解决方案。