Java 连接 Hive

Hive具有一个可选的组件叫做HiveServer或者HiveThrift,其允许通过指定端口访问Hive.访问Hive常用访问方式是通过CLI进行访问。不过,CLI设计使其不方便通过编程的方式访问。CLI是胖客户端。Hive提供了jdbc驱动,使得我们可以用Java代码来连接Hive并进行一些类关系型数据库的sql语句查询等操作。同关系型数据库一样,我们也需要将Hive的服务打开;在Hive 0.11.0版本之前,只有HiveServer服务可用,这里我们使用hive-1.1.0,你得在程序操作Hive之前,必须在Hive安装的服务器上打开HiveServer2服务,如下:  

进入到hive安装目录的bin目录下:启动 hiveserver2

 

需要注意的是:hiveserver 的driver classname是org.apache.hadoop.hive.jdbc.HiveDriver,HiveServer 2的是org.apache.hive.jdbc.HiveDriver,这两个容易混淆。

package com.hive.client;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JavaHiveClient {

	private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String url = "jdbc:hive2://192.168.150.162:10000/default";
    private static String sql = "";
    private static ResultSet rs;
	/**
	 * @param args
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 */
	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		 Connection conn = null;
         Class.forName(driverName);
		 //默认使用端口10000, 使用默认数据库,用户名密码默认  hadoop 服务器登录用户名  dh!123456登录密码
         conn = DriverManager.getConnection(url, "hadoop", "dh!123456");
         String tableName = "vehicle_pass";
	   	 Statement stmt = conn.createStatement(); 
	   	 sql = "select * from " + tableName+" limit 8";
         System.out.println("Running:" + sql);
	     rs = stmt.executeQuery(sql);
	     System.out.println("执行“select * query”运行结果:");
	     while (rs.next()) {
	    	  
	         System.out.println(rs.getString(1) + "\t" +":" + rs.getString(2));
	           
	      } 
	   	  stmt.close();
	   	  conn.close();   
	}

}
运行结果:

0002301_20150417103232	:fpt://vehiclepass/20150417/2015041710323223.pic
0002301_20150417103232	:fpt://vehiclepass/20150417/2015041710323222143.pic
0002301_20150417103232	:fpt://vehiclepass/20150417/20150417103232221.pic

https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值