【问题标题】:How to include hbase-site.xml in the classpath如何在类路径中包含 hbase-site.xml
【发布时间】:2013-01-15 05:49:03
【问题描述】:

我目前正在尝试让我的 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编译代码。

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

提前致谢!

【问题讨论】:

    标签: java hadoop classpath hbase


    【解决方案1】:

    如果无论您在hbase-site.xml 中输入什么,它都使用默认值,这可能意味着它被类路径中的另一个文件覆盖。这是很有可能的,因为在 hbase jar 中已经有一个conf-site.xml

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

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

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

    希望对您有所帮助。

    【讨论】:

    • 感谢您的回复。您如何建议我从 Eclipse 中获取相当复杂的项目和库引用集并将它们合并为您在 Linux 机器上建议的命令的一部分。知道是否有办法在 Eclipse 中对程序进行半编译,然后执行您建议的命令,将大部分完成的 jar 与该类路径添加链接起来?
    • @user1777358 您可以通过在命令行上键入hbase classpath 来找到您需要的 jar,这应该会为您提供使用 hbase 所需的所有 jar。
    • 好吧,我想hadoop也是类似的。我可能可以查找如何将其他项目链接到编译语句中。我会处理这个。再次感谢。
    • 是的,您也可以使用hadoop classpath,它会为您提供所需的 jar 集。当我需要创建一个 shell 脚本来运行作业时,我会为我的所有项目执行此操作,并且到目前为止它运行良好。
    • 嗨@CharlesMenguy 和@Alex Vertlieb,我正在尝试从Scala 代码(位于我的Windows 机器上)连接HBase(位于我的Windows 机器上的VM 内)。如何在 Windows 机器内的 Java CLASSPATH 中设置 hbase-site.xml
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2010-09-16
    相关资源
    最近更新 更多