您的位置:首页 > 编程语言 > Java开发

java 利用jdbc连接hive查询示例

2013-08-22 10:52 411 查看


转自http://ganliang13.iteye.com/blog/1736296

1.千万记得执行这个命令bin/hive --service hiveserver >/dev/null 2>/dev/null &,

否则就会出现hive ,Connection refuse 的异常。

2.加入包,我这里的环境是hadoop1.01,hive0.8.1

antlr-runtime-3.0.1.jar

commons-logging-api-1.0.4.jar

hadoop-core-1.0.1.jar

hive-exec-0.8.1.jar

hive-jdbc-0.8.1.jar

hive-metastore-0.8.1.jar

hive-service-0.8.1.jar

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.代码

Java代码


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class HiveTestCase {

public static void main(String[] args) throws Exception {

Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");

//String dropSQL = "drop table javabloger";

//String createSQL = "create table javabloger (key int, value string)";

// hive插入数据支持两种方式一种:load文件,令一种为从另一个表中查询进行插入(感觉这是个鸡肋)

// hive是不支持insert into...values(....)这种操作的

//String insterSQL = "LOAD DATA LOCAL INPATH '/work/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE javabloger";

String querySQL = "SELECT name,address FROM people_test a";

Connection con = DriverManager.getConnection(

"jdbc:hive://localhost:10000/default", "root", "****");

Statement stmt = con.createStatement();

//stmt.executeQuery(dropSQL); // 执行删除语句

//stmt.executeQuery(createSQL); // 执行建表语句

//stmt.executeQuery(insterSQL); // 执行插入语句

ResultSet res = stmt.executeQuery(querySQL); // 执行查询语句

while (res.next()) {

System.out.println("Result: key:" + res.getString(1) + " –> value:" + res.getString(2));

}

}

}

4.运行结果

Result: key:阿里马马 –> value:北京海淀西四环
Result: key:甘亮 –> value:湖北咸宁
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: