5

sock プロキシ経由で HbaseAdmin/Htable を呼び出す方法はありますか? クラスター内のボックスの 1 つにマップされた localhost:1080 ソックス プロキシを使用してから、Hbase (Zookeeper、Master、RegionServer) と通信したいと考えています。それを行う方法はありますか?

ありがとう。

4

1 に答える 1

4

私も同じ要件を持っていて、ZooKeeper クライアント接続が NIO (org.apache.zookeeper.ClientCnxnSocketNIO) 経由で実装されていることがわかりました。また、NIO はソックス経由の接続をサポートしていません

ソースがある場合は、ZooKeeper.java のメソッド getClientCnxnSocket() を確認してください。

private static ClientCnxnSocket getClientCnxnSocket() throws IOException {
    String clientCnxnSocketName = System
            .getProperty(ZOOKEEPER_CLIENT_CNXN_SOCKET);
    if (clientCnxnSocketName == null) {
        clientCnxnSocketName = ClientCnxnSocketNIO.class.getName();
    }
    try {
        return (ClientCnxnSocket) Class.forName(clientCnxnSocketName)
                .newInstance();
    } catch (Exception e) {
        IOException ioe = new IOException("Couldn't instantiate "
                + clientCnxnSocketName);
        ioe.initCause(e);
        throw ioe;
    }
}

ソックスで動作させたい場合は、ClientCnxnSocket を拡張して独自の実装を提供し、システム変数 Zookeeper.clientCnxnSocket を使用して指定する必要があります)。

于 2013-11-11T06:11:25.857 に答える