6

我目前正在尝试让我的 HBase 代码使用我的 hbase-site.xml 中指定的设置。它似乎使用默认设置而不是 hbase-site.xml 配置文件中指定的设置。自从更新文件后,我已经重新启动了 HBase 集群,但它仍然没有使用我更新的配置文件。

我使用的集群是 2 个节点,其中一个是主节点。两个节点上的配置文件都将主节点的 IP 指定为 zookeeper quorum。我相信问题是我在 hbase-site.xml 中指定的设置没有被使用,因为如果我通过代码将 zookeeper quorum 设置为与我的 hbase-site.xml 中相同的值,代码运行良好,但第二个节点不能如果未通过代码指定法定人数,请联系主人。

config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", masterNodeIP);

我将非常感谢有关如何将 hbase-site.xml 包含到我的代码的类路径中的说明或链接。我在 Windows 机器上使用 Eclipse 进行开发,并在 Linux 集群上安装了 HBase 环境。由于依赖关系,我通常使用 Eclipse 编译代码。

理想情况下,我希望集群中的每个节点都使用自己的配置文件。

提前致谢!

4

1 回答 1

11

如果它使用默认值而不管你在hbase-site.xml你的 . 这是很有可能的,因为conf-site.xml在 hbase jar 中已经有一个。

要解决此问题,请编辑您的类路径以hbase-site.xml在类路径末尾添加包含您的目录,以确保没有任何内容覆盖它。就像是:

java -cp $CLASSPATH:/usr/lib/hbase/conf path.to.your.Mainclass

如果它变得太模糊,我建议从命令行而不是在 Eclipse 中运行它,这样您就可以完全确定类路径中的内容。

希望有帮助。

于 2013-01-14T21:49:03.540 回答