通过sock代理的Hbase API
有没有办法通过sock代理调用HbaseAdmin/Htable?我想使用localhost:1080 socks代理映射到集群中的一个框,然后与Hbase(Zookeeper、Master、RegionServer)对话。有办法吗通过sock代理的Hbase API,hbase,apache-zookeeper,socks,Hbase,Apache Zookeeper,Socks,有没有办法通过sock代理调用HbaseAdmin/Htable?我想使用localhost:1080 socks代理映射到集群中的一个框,然后与Hbase(Zookeeper、Master、RegionServer)对话。有办法吗 谢谢。我也有同样的要求,并且发现ZooKeeper客户端连接是通过NIO(org.apache.ZooKeeper.ClientCnxnSocketNIO)实现的。NIO不支持通过袜子连接 如果有源代码,请在ZooKeeper.java上签出getClientCnx
谢谢。我也有同样的要求,并且发现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;
}
}
如果您想让它在socks上工作,您需要通过扩展ClientCnxnSocket提供自己的实现,并使用系统变量zookeeper.ClientCnxnSocket指定它。当前zookeeper实现很烦人。您需要扩展的ClientCnxnSocket类具有“package”作用域,因此如果您想添加自己的实现,您必须将其放在org.apache.zookeer包中。这方面是否有任何变化,或者我们是否仍需要对其进行破解,以通过socks代理使zk/hbase连接正常工作?