-1
import java.util.List;
import org.apache.hadoop.hive.service.HiveServerException;
import org.apache.hadoop.hive.service.ThriftHive;
import org.apache.hadoop.hive.service.ThriftHive.Client;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.transport.TSocket;
public class Hive_demo_02 {
/**
* @param args
*/
static TSocket transport;
static Client client=null;
private static Client getClient(String hiveServer, Integer hivePort)
{
final int SOME_BIG_NUMBER = 999999993;
try {
transport = new TSocket(hiveServer, hivePort);
transport.setTimeout(SOME_BIG_NUMBER);
transport.open();
TBinaryProtocol protocol = new TBinaryProtocol(transport);
client = new ThriftHive.Client(protocol);
System.out.println("Connection is established");
return client;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
private void show_databases(Client c1)
{
if(c1!=null)
{
try {
try {
c1.execute("show databases;");
} catch (TException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<String> li = null;
System.out.println("hai");
try {
li = c1.fetchAll();
System.out.println(li);
System.out.println("hai");
} catch (TException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(" *** The Databases List *** ");
for (String string : li) {
System.out.println(string);
}
System.out.println(" -------------------------------- ");
Client c2=c1;
}
finally{
}
}
}
private void create_databases(Client c1)
{
try {
c1.execute("create database IF NOT EXISTS jdbc_demo");
} catch (HiveServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(" *** jdbc_demo Databases is created *** ");
System.out.println(" -------------------------------- ");
Client c2=c1;
}
private void use_databases(Client c1,String db_name)
{
try {
c1.execute("use "+db_name);
} catch (HiveServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(" *** Changed Database to "+db_name+" *** ");
System.out.println(" -------------------------------- ");
Client c2=c1;
//return c2;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String HIVE_SERVER = "localhost";
Integer HIVE_PORT = new Integer(54310);
Client client = getClient(HIVE_SERVER, HIVE_PORT);
Hive_demo_02 obj=new Hive_demo_02();
obj.show_databases(client);
System.out.println(" Before Creating the Database jdbc_demo ");
obj.create_databases(client);
System.out.println(" After Creating the Database jdbc_demo ");
obj.show_databases(client);
System.out.println(" Changing to jdbc_demo Database ");
obj.use_databases(client,"jdbc_demo");
transport.close();
}
}
Я получаю исключение Сломанной трубы в этой программе. Может ли кто-нибудь помочь мне в этом?Ошибка обрыва трубы в следующей программе
Это очень трудно следовать, что делает программа, как нет отступа. Кроме того, просьба предоставить дополнительную помощь потенциальным ответчикам. Что должна делать программа? Как это не удается? Что вы пробовали и каковы были результаты? –
Он пытается подключиться к серверу Hive и попытаться создать, отобразить и изменить базу данных в Hive. –