$ {HBASE_HOME} /conf/hbase-site.xml具有下一个值:
<property>
<name>hbase.zookeeper.quorum</name>
<value>hd1</value>
</property>
“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"));
}
}
我得到“localhost”。 HBase在分布式模式下设置,有一个主服务器和两个区域服务器......并且所有配置文件都已同步,我多次重启所有服务器。
有什么我错过的吗?
答案 0 :(得分:6)
${HBASE_HOME}/conf/hbase-site.xml
不在类路径中,或者被其他conf-site.xml
覆盖(很可能是与HBase jar捆绑在一起的conf-site.xml
)
要修复它,可以将带有自定义设置的HBase conf目录添加到类路径中,然后使用该类路径调用程序。 e.g,
java -cp <earlier classpath>:<your custom conf location> <your program>