2

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

<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hd1</value>
</property>

在“/etc/hosts”中设置了“hd1”主机名,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"));
    }
}

我得到“本地主机”。HBase 设置为分布式模式,有一个主服务器和 2 个区域服务器......并且所有 conf 文件都已同步,我多次重新启动所有服务器。

有什么我错过的吗?

4

1 回答 1

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>

于 2012-06-01T15:53:10.250 回答