Hive的jdbc编程
hive实现了jdbc接口,所以可以通过java代码操作。但是实际应用中用的不多,一般都是在HDFS储存的文件基础上建立外部表来进行查询处理。
实现步骤
1.在服务器端开启HiveServer服务
./hive –service hiveserver2 & (以后台线程启动)
2.创建本地工程,导入jar包
导入hive\lib目录下的hive-jdbc-1.2.0-standalone.jar
导入hadoop-2.7.1\share\hadoop\common下的hadoop-common-2.7.1.jar
3.编写jdbc代码执行
代码示例:
/*
* 连接和查询
*/
@Test
public void testConnectAndQuery() throws Exception {
//注册数据库驱动,用的hive的jdbc,驱动名固定写死
Class.forName(“org.apache.hive.jdbc.HiveDriver”);
//如果用的是hive2服务,则写jdbc:hive2,后面跟上hive服务器的ip以及端口号,端口号默认是10000
Connection conn = DriverManager.getConnection(“jdbc:hive2://192.168.234.21:10000/park”,”root”,”root”);
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(“select * from stu”);
while(rs.next()){
String name = rs.getString(“name”);
System.out.println(name);
}
stat.close();
conn.close();
}
/*
* 利用executeUpdate()方法是实现建表的创建、插入数据及删除表
*/
@Test
public void testInsert() throws Exception{
Class.forName(“org.apache.hive.jdbc.HiveDriver”);
Connection conn = DriverManager.getConnection(“jdbc:hive2://192.168.234.21:10000/park”,”root”,”root”);
Statement stat = conn.createStatement();
//executeUpdate可用于:创建表,向表中插入数据以及删除表
stat.executeUpdate(“insert into table stu values(2,’rose’)”);
stat.executeUpdate(“create table stu2(id int,name string) row format delimited fields terminated by ‘ ‘”);
stat.executeUpdate(“drop table stu2”);
stat.close();
stat.close();
}