packagecn.ac.iscas.hiveclient;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.List;importjava.util.Properties;importorg.apache.hadoop.hive.service.HiveClient;importorg.apache.hadoop.hive.service.HiveServerException;importorg.apache.thrift.TException;importorg.apache.thrift.protocol.TBinaryProtocol;importorg.apache.thrift.protocol.TProtocol;importorg.apache.thrift.transport.TSocket;importorg.apache.thrift.transport.TTransport;importorg.apache.thrift.transport.TTransportException;public classHiveThreatClient {staticTTransport transport;staticTProtocol protocol;staticHiveClient client ;staticString ip;static intport;static{
Properties prop= newProperties();
InputStream in= HiveJDBCClient.class.getResourceAsStream("hiveCli.properties");try{
prop.load(in);
ip= prop.getProperty("ip");
port= Integer.valueOf(prop.getProperty("port"));
}catch(IOException e){
e.printStackTrace();
}
}public static List execute(String query) throwsHiveServerException,
TException,TTransportException{
List result = new ArrayList();
transport= newTSocket(ip,port);
protocol= newTBinaryProtocol(transport);
client= newHiveClient(protocol);
transport.open();
client.send_execute(query);
client.recv_execute();//client.send_commit_txn(rqst);//client.execute(query);
List list = client.fetchN(10);while(null!=list && list.size()>0){for(String r :list){
System.out.println(r);
result.add(r);
}
list= client.fetchN(10);
}
client.shutdown();
transport.close();returnresult;
}public static voidmain(String[] args){try{//HiveThreatClient.execute("desc carsrecord");//HiveThreatClient.execute("select distinct addressname from carsrecord where collectiontime=‘2015-02-02‘");//load data inpath ‘/2015/02/2015-02-01.dat‘ overwrite into table carsrecord partition(collectiontime=‘2015-02-01‘)
for(int i = 10; i < 29; i++){
String day= i > 9 ? ""+i:"0"+i;
String stat= "load data inpath ‘/2015/02/2015-02-"+day+".dat‘ overwrite into table carsrecord partition(collectiontime=‘2015-02-"+day+"‘)";
System.out.println(stat);
HiveThreatClient.execute(stat);
}//HiveThreatClient.execute("select * from carsrecord where collectiondate>=‘2014-01-01‘ and collectiondate
} catch(HiveServerException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(TTransportException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(TException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}
}