Ris*_*edi 5 hbase socks apache-zookeeper
有没有办法通过 sock 代理调用 HbaseAdmin/Htable?我想使用 localhost:1080 袜子代理映射到集群中的一个盒子,然后与 Hbase(Zookeeper、Master、RegionServer)交谈。有没有办法做到这一点?
谢谢。
小智 4
我也有同样的要求,并发现 ZooKeeper 客户端连接是通过 NIO (org.apache.zookeeper.ClientCnxnSocketNIO) 实现的。NIO不支持socks连接
如果您有源代码,请查看 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;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想让它通过socks工作,你需要通过扩展ClientCnxnSocket来提供你自己的实现,并使用系统变量zookeeper.clientCnxnSocket指定它。
| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |