6

現在、hbase-site.xmlで指定された設定を使用するようにHBaseコードを取得しようとしています。hbase-site.xml構成ファイルで指定されているものではなく、デフォルト設定を使用しているようです。ファイルを更新してからHBaseクラスターを再起動しましたが、更新した構成ファイルをまだ使用していません。

私が使用しているクラスターは2つのノードで、そのうちの1つがマスターです。両方のノードの構成ファイルは、マスターノードのIPをzookeeperクォーラムとして指定します。問題は、コードを介してzookeeperクォーラムをhbase-site.xmlと同じ値に設定するとコードが正常に実行されるため、hbase-site.xmlで指定された設定が使用されていないことですが、2番目のノードでは使用できません。クォーラムがコードで指定されていない場合は、マスターに連絡してください。

config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", masterNodeIP);

コードのクラスパスにhbase-site.xmlを含める方法についての説明またはリンクをいただければ幸いです。WindowsマシンでEclipseを使用して開発し、LinuxクラスターにHBase環境をインストールしています。依存関係があるため、私は通常Eclipseを使用してコードをコンパイルします。

理想的には、クラスター内の各ノードが独自の構成ファイルを使用するようにします。

前もって感謝します!

4

1 に答える 1

11

に何を入れたかに関係なくデフォルトを使用している場合hbase-site.xmlは、クラスパス内の別のファイルによってオーバーライドされている可能性があります。conf-site.xmlこれは、hbase jarにすでに存在するため、非常に可能です。

これを修正するには、クラスパスを編集して、クラスパスhbase-site.xmlの最後にを含むディレクトリを追加し、それを上書きするものがないことを確認します。何かのようなもの:

java -cp $CLASSPATH:/usr/lib/hbase/conf path.to.your.Mainclass

あいまいになりすぎる場合は、Eclipseではなくコマンドラインから実行することをお勧めします。そうすれば、クラスパスに何があるかを正確に確認できます。

お役に立てば幸いです。

于 2013-01-14T21:49:03.540 に答える