2

${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は分散モードでセットアップされ、1つのマスターサーバーと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 に答える