HBaseConfiguration不读取我在$ {HBASE_HOME} /conf/hbase-site.xml中设置的值

XoR*_*XoR 2 configuration hadoop hbase

$ {HBASE_HOME} /conf/hbase-site.xml具有下一个值:

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hd1</value>
</property>
Run Code Online (Sandbox Code Playgroud)

"hd1"主机名设置在"/ etc/hosts"中,ping工作...

有了这个简单的Java程序:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;

public class TestConfigurator {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Configuration conf = HBaseConfiguration.create();
        System.out.println("HBase quorum: " + conf.get("hbase.zookeeper.quorum", "localhost"));
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到"localhost".HBase在分布式模式下设置,有一个主服务器和两个区域服务器......并且所有conf文件都已同步,我多次重启所有服务器.

有什么我错过了吗?

Har*_*non 6

要么${HBASE_HOME}/conf/hbase-site.xml不在类路径中,要么被其他一些覆盖conf-site.xml(很可能conf-site.xml是与HBase jar捆绑在一起)

要修复它,可以将带有自定义设置的HBase conf目录添加到类路径中,然后使用该类路径调用程序.例如,

java -cp <earlier classpath>:<your custom conf location> <your program>