手动新建hive编程环境(以hive-1.0.0和hive-1.2.1为例)
如下,是用maven构建项目,本篇博文重点不是这个。初学者(小白)变成小鸟后,建议开始用maven啦!
Eclipse下Maven新建项目、自动打依赖jar包(包含普通项目和Web项目)
HBase 开发环境搭建(Eclipse\MyEclipse + Maven)
MapReduce 开发环境搭建(Eclipse\MyEclipse + Maven)
Hadoop项目开发环境搭建(Eclipse\MyEclipse + Maven)
Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)
对于初学者,比如在Eclipse/MyEclipse里,手动构建hive项目来编程。怎么做呢?如下
第一步:
第二步:这里,你要么可以跟我这样,直接选择Map/Reduce project(这里可以直接把hadoop所有jar包导入,因为编程中你还是要用到hdfs啦。)
第三步:给你的Hive项目取名。
第四步:
第五步:得到
第六步:编个入门程序
Demo.java
1 package com.dajangtai.Hive; 2 3 4 5 6 import java.sql.Connection; 7 import java.sql.DriverManager; 8 import java.sql.ResultSet; 9 import java.sql.SQLException; 10 import java.sql.Statement; 11 12 13 public class Demo { 14 private static String driverName = "org.apache.hive.jdbc.HiveDriver";//hive驱动名称 15 private static String url = "jdbc:hive2://djt002:10000/default";//连接hive2服务的连接地址,Hive0.11.0以上版本提供了一个全新的服务:HiveServer2 16 private static String user = "hadoop";//对HDFS有操作权限的用户 17 private static String password = "";//在非安全模式下,指定一个用户运行查询,忽略密码 18 private static String sql = ""; 19 private static ResultSet res; 20 public static void main(String[] args) { 21 try { 22 Class.forName(driverName);//加载HiveServer2驱动程序 23 Connection conn = DriverManager.getConnection(url, user, password);//根据URL连接指定的数据库 24 Statement stmt = conn.createStatement(); 25 26 //创建的表名 27 String tableName = "testHiveDriverTable"; 28 29 /** 第一步:表存在就先删除 **/ 30 sql = "drop table " + tableName; 31 stmt.execute(sql); 32 33 /** 第二步:表不存在就创建 **/ 34 sql = "create table " + tableName + " (key int, value string) row format delimited fields terminated by '\t' STORED AS TEXTFILE"; 35 stmt.execute(sql); 36 37 // 执行“show tables”操作 38 sql = "show tables '" + tableName + "'"; 39 res = stmt.executeQuery(sql); 40 if (res.next()) { 41 System.out.println(res.getString(1)); 42 } 43 44 // 执行“describe table”操作 45 sql = "describe " + tableName; 46 res = stmt.executeQuery(sql); 47 while (res.next()) { 48 System.out.println(res.getString(1) + "\t" + res.getString(2)); 49 } 50 51 // 执行“load data into table”操作 52 String filepath = "/usr/local/data/djt.txt";//hive服务所在节点的本地文件路径 53 sql = "load data local inpath '" + filepath + "' into table " + tableName; 54 stmt.execute(sql); 55 56 // 执行“select * query”操作 57 sql = "select * from " + tableName; 58 res = stmt.executeQuery(sql); 59 while (res.next()) { 60 System.out.println(res.getInt(1) + "\t" + res.getString(2)); 61 } 62 63 // 执行“regular hive query”操作,此查询会转换为MapReduce程序来处理 64 sql = "select count(*) from " + tableName; 65 res = stmt.executeQuery(sql); 66 while (res.next()) { 67 System.out.println(res.getString(1)); 68 } 69 conn.close(); 70 conn = null; 71 } catch (ClassNotFoundException e) { 72 e.printStackTrace(); 73 System.exit(1); 74 } catch (SQLException e) { 75 e.printStackTrace(); 76 System.exit(1); 77 } 78 } 79 }
运行之后,得到
2 hive的使用 + hive的常用语法
作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!