HBaseConfiguration don';t读取我在${HBASE_HOME}/conf/HBASE-site.xml中设置的值

HBaseConfiguration don';t读取我在${HBASE_HOME}/conf/HBASE-site.xml中设置的值,configuration,hadoop,hbase,Configuration,Hadoop,Hbase,${HBASE_HOME}/conf/HBASE-site.xml具有以下值: <property> <name>hbase.zookeeper.quorum</name> <value>hd1</value> </property> 我得到“localhost”。HBase以分布式模式设置,具有一个主服务器和两个区域服务器。。。所有的conf文件都同步了,我多次重启了所有服务器 有什么我遗漏的吗?要么${HBAS

${HBASE_HOME}/conf/HBASE-site.xml具有以下值:

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hd1</value>
</property>
我得到“localhost”。HBase以分布式模式设置,具有一个主服务器和两个区域服务器。。。所有的conf文件都同步了,我多次重启了所有服务器


有什么我遗漏的吗?

要么
${HBASE_HOME}/conf/HBASE site.xml
不在类路径中,要么它正被其他
conf site.xml
覆盖(很可能是HBASE jar附带的
conf site.xml

要修复此问题,可以将带有自定义设置的HBase conf目录添加到类路径中,然后使用该类路径调用程序。e、 g,


java-cp:

是关于hbase.jar中的conf-site.xml的。只需在类路径中添加/etc/hbase/conf/就可以解决这个问题。非常感谢这种方法真的很有帮助。谢谢:-)
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"));
    }
}