独自の Zookeeper を持つ開発クラスターから、別のクラスターまたは環境 (ステージングなど) で実行されている Zookeeper に接続しようとしています。
これを分散モードで実行すると、別の hbase インスタンスに接続できませんが、疑似モードまたはスタンドアロン モードで実行すると、別の hbase 環境に接続できます。
Configuration cloneConfig = HBaseConfiguration.create();
cloneConfig.clear();
cloneConfig.set("hbase.zookeeper.quorum", "shost3,shost2,shost1");
cloneConfig.set("hbase.zookeeper.property.clientPort", "2181");
HBaseAdmin.checkHBaseAvailable(cloneConfig);
destinationTable = new HTable(cloneConfig, destinationTableName);
実行中のオープンとは異なる飼育係に接続する方法はありますか? たとえば、デフォルトの構成を使用して hbase サーバーに接続する場合
Configuration conf = HBaseConfiguration.create();
new HTable(conf, destinationTableName);
ログでデフォルトの飼育係に接続していることがわかります。
zookeeper.ZooKeeper: Initiating client connection, connectString=host1:2181,host2:2181,
ただし、hbase.zookeeper.quorum プロパティを設定しても接続文字列は変更されず、引き続きデフォルトの Zookeeper に接続されます。