当前位置: 首页 > 面试题库 >

如何在类路径中包含hbase-site.xml

萧英光
2023-03-14
问题内容

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

我正在使用的群集有2个节点,其中一个是主节点。两个节点上的配置文件都将主节点的IP指定为Zookeeper仲裁。我相信问题在于我没有使用hbase-
site.xml中指定的设置,因为如果我通过代码将html" target="_blank">zookeeper仲裁设置为与hbase-
site.xml中相同的值,则代码可以正常运行,但是第二个节点无法运行如果未通过代码指定仲裁,请与主服务器联系。

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

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

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

提前致谢!


问题答案:

如果使用默认值而不管您将其放在什么位置hbase-site.xml,则可能意味着它已被类路径中的另一个文件覆盖。这很有可能,因为conf- site.xmlhbase jar中已经有一个。

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

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

如果太晦涩,我建议您从命令行而不是在Eclipse中运行它,以便您可以完全确定类路径中的内容。

希望能有所帮助。



 类似资料:
  • 我在Eclipse中创建了一个Java项目,并创建了一个带有main方法的简单类。 问题:当我运行程序(没有任何服务器等)时,我收到以下错误: 线程“main”java中出现异常。lang.NoClassDefFoundError:org/apache/commons/codec/DecoderException at autoPEC。main(autoPEC.java:6)由:java引起。la

  • 问题内容: 是否可以指定一个Java ,其中包含另一个JAR文件中包含的JAR文件? 问题答案: 如果您试图创建一个包含应用程序及其所需库的jar,则有两种方法(我知道)。第一个是One-Jar,它使用特殊的类加载器来允许jar的嵌套。第二个是UberJar(或Shade),它会爆炸包含的库并将所有类放在顶级jar中。 我还应该提到UberJar和Shade分别是Maven1和Maven2的插件。

  • 似乎默认情况下,Quarkus生成的本机映像不包含任何与< code>src/main/resources/中的内容相对应的类路径资源。 从GraalVM医生那里,我有点理解为什么会发生这种情况,但现在我被卡住了。是否有方法配置以将资源包含在本机映像中?

  • 问题内容: 我的Java应用程序使用的库需要在类路径中查找文件(log4j.xml)。我使用netbeans管理我的项目,但是找不到包含lib /文件夹的方法。 Netbeans会在应用程序jar中自动创建一个MANIFEST.MF文件,并还会创建一个名为lib /的文件夹,其中包含所有依赖项。该清单指定了Class-Path属性,该属性将覆盖命令行上提供的任何- cp参数。我可以在netbean

  • 问题内容: 我希望gcc 除了通常的include目录之外,还包含来自的文件,但似乎没有类似物。 我知道我可以在编译时(或在makefile中)在命令行中添加include目录,但是我真的想在这里采用通用方法,例如在库中。 问题答案: 尝试设置(对于C头文件)或(对于C ++头文件)。 正如Ciro所述,它将为C和C ++(以及任何其他语言)设置路径。 在GCC文档中有更多详细信息。

  • 问题内容: 有没有办法将所有jar文件包含在类路径的目录中? 我正在尝试,但找不到这些jar中肯定存在的类文件。我是否需要将每个jar文件分别添加到类路径? 问题答案: 使用Java 6或更高版本时,选项支持通配符。请注意以下几点: 使用双引号(”) 使用,不 windows Linux 这类似于Windows,但使用代替。如果不能使用通配符,则bash允许使用以下语法(其中lib包含所有Java