use of org.apache.thrift.transport.TSocket in project brisk by riptano.
the class ThriftUtils method createNamenodeClient.
/**
* Creates a Thrift name node client.
*
* @param conf the HDFS instance
* @return a Thrift name node client.
*/
public static Namenode.Client createNamenodeClient(Configuration conf) throws Exception {
String s = conf.get(NamenodePlugin.THRIFT_ADDRESS_PROPERTY, NamenodePlugin.DEFAULT_THRIFT_ADDRESS);
// TODO(todd) use fs.default.name here if set to 0.0.0.0 - but share this with the code in
// SecondaryNameNode that does the same
InetSocketAddress addr = NetUtils.createSocketAddr(s);
// in the thrift config.
if (addr.getAddress().isAnyLocalAddress()) {
InetSocketAddress nnAddr = NameNode.getAddress(conf);
addr = new InetSocketAddress(nnAddr.getAddress(), addr.getPort());
}
TTransport t = new TSocket(addr.getHostName(), addr.getPort());
if (UserGroupInformation.isSecurityEnabled()) {
t = new HadoopThriftAuthBridge.Client().createClientTransport(conf.get(DFSConfigKeys.DFS_NAMENODE_USER_NAME_KEY), addr.getHostName(), "KERBEROS", t);
}
t.open();
TProtocol p = new TBinaryProtocol(t);
return new Namenode.Client(p);
}
use of org.apache.thrift.transport.TSocket in project brisk by riptano.
the class Session method getClient.
/**
* Thrift client connection
* @param setKeyspace - should we set keyspace for client or not
* @return cassandra client connection
*/
public Cassandra.Client getClient(boolean setKeyspace) {
// random node selection for fake load balancing
String currentNode = nodes[Pricer.randomizer.nextInt(nodes.length)];
TSocket socket = new TSocket(currentNode, port);
TTransport transport = (isUnframed()) ? socket : new TFramedTransport(socket);
Cassandra.Client client = new Cassandra.Client(new TBinaryProtocol(transport));
try {
transport.open();
if (setKeyspace) {
client.set_keyspace("PortfolioDemo");
}
} catch (InvalidRequestException e) {
throw new RuntimeException(e.getWhy());
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
return client;
}
use of org.apache.thrift.transport.TSocket in project tech by ffyyhh995511.
the class Test2Client method main.
public static void main(String[] args) throws Exception {
// 设置传输通道,对于非阻塞服务,需要使用TFramedTransport,它将数据分块发送
TTransport transport = new TFramedTransport(new TSocket("localhost", 7911));
transport.open();
// 使用高密度二进制协议
TProtocol protocol = new TCompactProtocol(transport);
// 创建Client
Hello.Client client = new Hello.Client(protocol);
System.out.println("starting...");
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
client.helloBoolean(false);
client.helloInt(111);
// client.helloNull();
client.helloString("360buy");
client.helloVoid();
}
System.out.println("耗时:" + (System.currentTimeMillis() - start));
// 关闭资源
transport.close();
}
use of org.apache.thrift.transport.TSocket in project tech by ffyyhh995511.
the class Test3Client method main.
public static void main(String[] args) throws Exception {
String address = "localhost";
int port = 7911;
int timeout = 100 * 1000;
// 使用非阻塞方式,按块的大小进行传输,类似于Java中的NIO。记得调用close释放资源
TTransport transport = new TFramedTransport(new TSocket(address, port, timeout));
// 高效率的、密集的二进制编码格式进行数据传输协议
TProtocol protocol = new TCompactProtocol(transport);
Hello.Client client = new Hello.Client(protocol);
try {
transport.open();
System.out.println(client.helloInt(111));
transport.close();
} catch (TException e) {
e.printStackTrace();
}
}
use of org.apache.thrift.transport.TSocket in project tech by ffyyhh995511.
the class ThriftService method getDistributedIncrease.
/**
* 分布式递增
* @return
*/
public long getDistributedIncrease() {
TTransport transport = null;
Long increase = 0L;
try {
// 设置传输通道,对于非阻塞服务,需要使用TFramedTransport,它将数据分块发送
transport = new TFramedTransport(new TSocket("192.168.11.170", 7911));
transport.open();
// 使用高密度二进制协议
TProtocol protocol = new TCompactProtocol(transport);
// 创建Client
ServerTime.Client client = new ServerTime.Client(protocol);
increase = client.getIncrease();
} catch (Exception e) {
// logger.error(e.getStackTrace());
e.printStackTrace();
} finally {
// 关闭资源
if (transport != null) {
transport.close();
}
}
return increase;
}
Aggregations