在以下程序中获取断开的管道错误 import java.util.List; 导入org.apache.hadoop.hive.service.HiveServerException; 导入org.apache.hadoop.hive.service.ThriftHive; 导入org.apache.hadoop.hive.service.ThriftHive.Client; 导入org.apache.thrift.TException; 导入org.apache.thrift.protocol.TBinaryProtocol; 导入org.apache.thrift.transport.TSocket; 公共类蜂巢演示02{ /** *@param args */ 静态TSocket传输; 静态客户端=空; 专用静态客户端getClient(字符串hiveServer、整数hivePort) { 最终整数部分大数=999993; 试一试{ 传输=新的TSocket(hiveServer、hivePort); transport.setTimeout(一些大数字); transport.open(); TBinaryProtocol协议=新的TBinaryProtocol(传输); 客户端=新的ThriftHive.client(协议); System.out.println(“连接已建立”); 返回客户; } 捕获(例外e){ e、 printStackTrace(); 返回null; } } } 专用void show_数据库(客户端c1) { 如果(c1!=null) { 试一试{ 试一试{ c1.执行(“显示数据库;”; }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } 列表li=null; 系统输出打印号(“hai”); 试一试{ li=c1.fetchAll(); 系统输出println(li); 系统输出打印号(“hai”); }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } System.out.println(“***数据库列表***”); for(字符串:li){ System.out.println(字符串); } System.out.println(“-------------------------------------”); 客户c2=c1; } 最后{ } } } 专用void创建_数据库(客户端c1) { 试一试{ c1.执行(“创建数据库,如果不存在jdbc_demo”); }捕获(HiveServer异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } System.out.println(“***创建了jdbc_演示数据库***”); System.out.println(“-------------------------------------”); 客户c2=c1; } 私有void use_数据库(客户端c1,字符串db_名称) { 试一试{ c1.执行(“使用”+db_名称); }捕获(HiveServer异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } System.out.println(“***将数据库更改为”+db\u name+“***”); System.out.println(“-------------------------------------”); 客户c2=c1; //返回c2; } 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 字符串HIVE_SERVER=“localhost”; 整数配置单元端口=新整数(54310); Client Client=getClient(配置单元服务器、配置单元端口); Hive_demo_02 obj=新的Hive_demo_02(); 对象显示数据库(客户端); System.out.println(“在创建数据库jdbc_演示之前”); 对象创建_数据库(客户端); System.out.println(“创建数据库jdbc_demo之后”); 对象显示数据库(客户端); System.out.println(“更改为jdbc_演示数据库”); obj.使用_数据库(客户端,“jdbc_演示”); transport.close(); } }
我在此程序中遇到断开的管道插座异常。有人能帮我吗?我找到了解决办法。将端口号设置为 导出配置单元\u端口=10000 然后使用启动配置单元服务器在以下程序中获取断开的管道错误 import java.util.List; 导入org.apache.hadoop.hive.service.HiveServerException; 导入org.apache.hadoop.hive.service.ThriftHive; 导入org.apache.hadoop.hive.service.ThriftHive.Client; 导入org.apache.thrift.TException; 导入org.apache.thrift.protocol.TBinaryProtocol; 导入org.apache.thrift.transport.TSocket; 公共类蜂巢演示02{ /** *@param args */ 静态TSocket传输; 静态客户端=空; 专用静态客户端getClient(字符串hiveServer、整数hivePort) { 最终整数部分大数=999993; 试一试{ 传输=新的TSocket(hiveServer、hivePort); transport.setTimeout(一些大数字); transport.open(); TBinaryProtocol协议=新的TBinaryProtocol(传输); 客户端=新的ThriftHive.client(协议); System.out.println(“连接已建立”); 返回客户; } 捕获(例外e){ e、 printStackTrace(); 返回null; } } } 专用void show_数据库(客户端c1) { 如果(c1!=null) { 试一试{ 试一试{ c1.执行(“显示数据库;”; }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } 列表li=null; 系统输出打印号(“hai”); 试一试{ li=c1.fetchAll(); 系统输出println(li); 系统输出打印号(“hai”); }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } System.out.println(“***数据库列表***”); for(字符串:li){ System.out.println(字符串); } System.out.println(“-------------------------------------”); 客户c2=c1; } 最后{ } } } 专用void创建_数据库(客户端c1) { 试一试{ c1.执行(“创建数据库,如果不存在jdbc_demo”); }捕获(HiveServer异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } System.out.println(“***创建了jdbc_演示数据库***”); System.out.println(“-------------------------------------”); 客户c2=c1; } 私有void use_数据库(客户端c1,字符串db_名称) { 试一试{ c1.执行(“使用”+db_名称); }捕获(HiveServer异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); }捕获(特克斯){ //TODO自动生成的捕捉块 e、 printStackTrace(); } System.out.println(“***将数据库更改为”+db\u name+“***”); System.out.println(“-------------------------------------”); 客户c2=c1; //返回c2; } 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 字符串HIVE_SERVER=“localhost”; 整数配置单元端口=新整数(54310); Client Client=getClient(配置单元服务器、配置单元端口); Hive_demo_02 obj=新的Hive_demo_02(); 对象显示数据库(客户端); System.out.println(“在创建数据库jdbc_演示之前”); 对象创建_数据库(客户端); System.out.println(“创建数据库jdbc_demo之后”); 对象显示数据库(客户端); System.out.println(“更改为jdbc_演示数据库”); obj.使用_数据库(客户端,“jdbc_演示”); transport.close(); } },java,hive,Java,Hive,我在此程序中遇到断开的管道插座异常。有人能帮我吗?我找到了解决办法。将端口号设置为 导出配置单元\u端口=10000 然后使用启动配置单元服务器 /hive——服务hiveserver由于没有缩进,很难理解程序在做什么。另外,请为潜在的回答者提供更多帮助。这个程序应该做什么?它怎么会失败呢?您尝试了什么,结果如何?它正在尝试连接到配置单元服务器,并尝试在配置单元中创建、显示和更改数据库。 import java.util.List; import org.apache.hadoop.hi
/hive——服务hiveserver由于没有缩进,很难理解程序在做什么。另外,请为潜在的回答者提供更多帮助。这个程序应该做什么?它怎么会失败呢?您尝试了什么,结果如何?它正在尝试连接到配置单元服务器,并尝试在配置单元中创建、显示和更改数据库。
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();
}
}