1.加载的文件(/home/wangwei/wangwei-software/file/a.txt)格式如下:
dk 12 1
hfd 132 99
bbN 463 231
UFD 13 10
2.工程中需要导入的jar如下:
antlr-runtime-3.0.1.jar
hive-metastore-0.8.1.jar
hive-service-0.8.1.jar
hsqldb-1.8.0.10.jar
hsqldb-1.8.0.10.LICENSE.txt
jdo2-api-2.3-ec.jar
libfb303.jar
log4j-1.2.15.jar
slf4j-api-1.4.3.jar
slf4j-log4j12-1.4.3.jar
3.具体的代码实现如下:
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
String dropSQL="drop table user";
String createSQL="create table user(name string,num1 string,num2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE";
//hive插入数据支持两种方式一种:load文件,令一种为从另一个表中查询进行插入(感觉这是个鸡肋)
//hive是不支持insert into...values(....)这种操作的
String insterSQL="LOAD DATA LOCAL INPATH '/home/wangwei/wangwei-software/file/a.txt' INTO TABLE user";
String querySQL="SELECT a.* FROM user a";
Connection con = DriverManager.getConnection("jdbc:hive://192.168.197.128:50031/default", "", "");
Statement stmt = con.createStatement();
stmt.executeQuery(dropSQL); // 执行删除语句
System.out.println("删除执行完毕!");
stmt.executeQuery(createSQL); // 执行建表语句
stmt.executeQuery(insterSQL); // 执行插入语句
ResultSet res = stmt.executeQuery(querySQL); // 执行查询语句
while (res.next()) {
System.out.println("Result: key:"+res.getString(1) +" –> num1:" +res.getString(2) +" –> num2:" +res.getString(3));
}
4.启动HIVE服务,测试和运行
如果出现问题查看相关日志:
http://user.qzone.qq.com/690395074/infocenter#!app=2&via=QZ.HashRefresh&pos=1341624301
http://user.qzone.qq.com/690395074/infocenter#!app=2&via=QZ.HashRefresh&pos=1341624484
http://user.qzone.qq.com/690395074/infocenter#!app=2&via=QZ.HashRefresh&pos=1341569025
dk 12 1
hfd 132 99
bbN 463 231
UFD 13 10
2.工程中需要导入的jar如下:
antlr-runtime-3.0.1.jar
commons-logging-1.0.4.jar
commons-logging-api-1.0.4.jar
hadoop-0.20.2-ant.jar
hadoop-0.20.2-core.jar
hadoop-0.20.2-examples.jar
hadoop-0.20.2-test.jar
hadoop-0.20.2-tools.jar
hive-exec-0.8.1.jar
hive-jdbc-0.8.1.jar
commons-logging-api-1.0.4.jar
hadoop-0.20.2-ant.jar
hadoop-0.20.2-core.jar
hadoop-0.20.2-examples.jar
hadoop-0.20.2-test.jar
hadoop-0.20.2-tools.jar
hive-exec-0.8.1.jar
hive-metastore-0.8.1.jar
hive-service-0.8.1.jar
hsqldb-1.8.0.10.jar
hsqldb-1.8.0.10.LICENSE.txt
jdo2-api-2.3-ec.jar
libfb303.jar
log4j-1.2.15.jar
slf4j-api-1.4.3.jar
slf4j-log4j12-1.4.3.jar
3.具体的代码实现如下:
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
String dropSQL="drop table user";
String createSQL="create table user(name string,num1 string,num2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE";
//hive插入数据支持两种方式一种:load文件,令一种为从另一个表中查询进行插入(感觉这是个鸡肋)
//hive是不支持insert into...values(....)这种操作的
String insterSQL="LOAD DATA LOCAL INPATH '/home/wangwei/wangwei-software/file/a.txt' INTO TABLE user";
String querySQL="SELECT a.* FROM user a";
Connection con = DriverManager.getConnection("jdbc:hive://192.168.197.128:50031/default", "", "");
Statement stmt = con.createStatement();
stmt.executeQuery(dropSQL); // 执行删除语句
System.out.println("删除执行完毕!");
stmt.executeQuery(createSQL); // 执行建表语句
stmt.executeQuery(insterSQL); // 执行插入语句
ResultSet res = stmt.executeQuery(querySQL); // 执行查询语句
while (res.next()) {
System.out.println("Result: key:"+res.getString(1) +" –> num1:" +res.getString(2) +" –> num2:" +res.getString(3));
}
4.启动HIVE服务,测试和运行
如果出现问题查看相关日志:
http://user.qzone.qq.com/690395074/infocenter#!app=2&via=QZ.HashRefresh&pos=1341624301
http://user.qzone.qq.com/690395074/infocenter#!app=2&via=QZ.HashRefresh&pos=1341624484
http://user.qzone.qq.com/690395074/infocenter#!app=2&via=QZ.HashRefresh&pos=1341569025