hive JDBC连接示例

public class JDBC {
	private static String driverName = "org.apache.hive.jdbc.HiveDriver";//hive驱动名称
	private static String url = "jdbc:hive2://lp3:10000/default";//连接hive2服务的连接地址,Hive0.11.0以上版本提供了一个全新的服务:HiveServer2
	private static String user = "hadoop";//对HDFS有操作权限的用户
	private static String password = "";//在非安全模式下,指定一个用户运行查询,忽略密码
	private static String sql = "";
	private static ResultSet res;
	
	public static void main(String[] args) {
	    try {
	        Class.forName(driverName);//加载HiveServer2驱动程序
	        Connection conn = DriverManager.getConnection(url, user, password);//根据URL连接指定的数据库
	        Statement stmt = conn.createStatement();
	        
	        //创建的表名
	        String tableName = "testHiveDriverTable";
	        
	        /** 第一步:表存在就先删除 **/
	        sql = "drop table " + tableName;
	        stmt.execute(sql);
	        
	        /** 第二步:表不存在就创建 **/
	        sql = "create table " + tableName + " (key int, value string)  row format delimited fields terminated by '\t' STORED AS TEXTFILE";
	        stmt.execute(sql);
	        
	        // 执行“show tables”操作
	        sql = "show tables '" + tableName + "'";
	        res = stmt.executeQuery(sql);
	        if (res.next()) {
	            System.out.println(res.getString(1));
	        }
	        
	        // 执行“describe table”操作
	        sql = "describe " + tableName;
	        res = stmt.executeQuery(sql);
	        while (res.next()) {  
	            System.out.println(res.getString(1) + "\t" + res.getString(2));
	        }
	        
	        // 执行“load data into table”操作
	        String filepath = "/home/hadoop/djt.txt";//hive服务所在节点的本地文件路径
	        sql = "load data local inpath '" + filepath + "' into table " + tableName;
	        stmt.execute(sql);
	        
	        // 执行“select * query”操作
	        sql = "select * from " + tableName;
	        res = stmt.executeQuery(sql);
	        while (res.next()) {
	            System.out.println(res.getInt(1) + "\t" + res.getString(2));
	        }
	        
	        // 执行“regular hive query”操作,此查询会转换为MapReduce程序来处理
	        sql = "select count(*) from " + tableName;
	        res = stmt.executeQuery(sql);
	        while (res.next()) {
	            System.out.println(res.getString(1));
	        }        
	        conn.close();
	        conn = null;
	    } catch (ClassNotFoundException e) {
	        e.printStackTrace();
	        System.exit(1);
	    } catch (SQLException e) {
	        e.printStackTrace();
	        System.exit(1);
	    }
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值