import java.util.List;
import org.apache.hadoop.hive.service.HiveClient;
import org.apache.hadoop.hive.service.HiveServerException;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
public class thrift_hive_java {
private static String HOST = "127.0.0.1";
private static int PORT = 10000;
public static void main(String[] args)
{
TTransport transport = new TSocket(HOST, PORT);
TProtocol protocol = new TBinaryProtocol(transport);
HiveClient client = new HiveClient(protocol);
try {
long time1 = System.currentTimeMillis();
transport.open();
client.execute("select a, b, c from tb where a='' and b='' limit 10");
List<String> list = client.fetchAll();
long time2 = System.currentTimeMillis();
String str = "";
for(int i = 0; i < list.size(); i++)
{
str = list.get(i);
System.out.println(str);
}
System.out.println("use time : " + (time2 - time1) + " ms." );
} catch (TTransportException e) {
e.printStackTrace();
} catch (HiveServerException e) {
e.printStackTrace();
} catch (TException e) {
e.printStackTrace();
}
try {
client.shutdown();
} catch (TException e) {
e.printStackTrace();
}
transport.close();
}
}
javac -Djava.ext.dirs=/usr/bin/hive/lib:. *.java -d ./output/
cd output
java -Djava.ext.dirs=/usr/bin/hive/lib:. thrift_hive_java
1364366310 30054373 12560280
1364366313 30054371 12560280
1364366314 30054372 12560280
1364366315 30054374 12560280
1364366316 30054368 12560280
1387914554 30054375 12560280
1387914554 30054375 12560280
1387914569 30054375 12560280
1387914569 30054375 12560280
1387914582 30054375 12560280
use time : 26592 ms.