hive

第一步、在/home/hadoop/cdh/test下创建原始数据

touch stu
vi stu
1    zhangsan
2    lisi

第二步、进入hive目录,启动hive服务

bin/hive --service hiveserver -v
Starting Hive Thrift Server
Starting hive server on port 10000 with 100 min worker threads and 2147483647 max worker threads

第三步、在hive里面创建一张表

hive> create table stu (id int, name string) row format delimited  fields terminated by '\t'
stored as textfile;

第四步、编写Java程序,并运行。

public class Demo01_hive_and_mysql {

    private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";    
    
    public static void main(String[] args) throws Exception {

        System.setProperty("hadoop.home.dir", "E:\\cdh\\hadoop-2.5.0-cdh5.3.6");

        try {
             Class.forName(driverName);
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
             System.exit(1);
         }
            //此处的用户名一定是有权限操作HDFS的用户,否则程序会提示"permission deny"异常
        Connection con = DriverManager.getConnection("jdbc:hive://192.168.2.133:10000/default", "user", "password");
                
        Statement stmt = con.createStatement();
        String tableName = "stu";
        String sql = "";
        ResultSet res = null;
        stmt.execute("drop table if exists " + tableName);
        stmt.execute("drop table if exists " + tableName);
        stmt.execute("create table " + tableName + " (key int, value string)");
        System.out.println("Create table success!");
        String sql = "show tables '" + tableName + "'";
        System.out.println("Running: " + sql);
        ResultSet res = stmt.executeQuery(sql);
        
        if (res.next()) {
            System.out.println(res.getString(1));
        
        }
        
        sql = "describe " + tableName;
        System.out.println("Running: " + sql);
        res = stmt.executeQuery(sql);
        
        while (res.next()) {
             System.out.println(res.getString(1) + "\t" + res.getString(2));
        }
        
        sql = "select * from " + tableName;
        System.out.println("Running: " + sql);
        res = stmt.executeQuery(sql);
        while (res.next()) {
            System.out.println("-------------------");
            System.out.println(res.getString(2)+"\t"+res.getString(1));
        }

结果显示

Running: describe stu
id                      int                 
name                    string              
Running: select * from stu
-------------------
zhangsan     1
-------------------
lisi         2

你可能感兴趣的:(hive)