zoukankan      html  css  js  c++  java
  • hive-通过Java API操作


    通过Java API操作hive,算是测试hive第三种对外接口


    测试hive 服务启动


     1 package org.admln.hive;
     2 
     3 import java.sql.SQLException;
     4 import java.sql.Connection;
     5 import java.sql.ResultSet;
     6 import java.sql.Statement;
     7 import java.sql.DriverManager;
     8 
     9 public class testHive {
    10     
    11     private static String driverName = 
    12                    "org.apache.hadoop.hive.jdbc.HiveDriver";
    13   
    14     public static void main(String[] args) 
    15                             throws SQLException {
    16         try {
    17             Class.forName(driverName);
    18         } catch (ClassNotFoundException e) {
    19             e.printStackTrace();
    20             System.exit(1);
    21         }
    22 
    23         Connection con = DriverManager.getConnection(
    24                            "jdbc:hive://192.168.126.133:10000/default", "hive", "hadoop");
    25         Statement stmt = con.createStatement();
    26         String tableName = "hellohive";
    27         stmt.execute("drop table if exists " + tableName);
    28         stmt.execute("create table " + tableName + 
    29                                      " (key int, value string)");
    30         System.out.println("Create table success!");
    31         // show tables
    32         String sql = "show tables '" + tableName + "'";
    33         System.out.println("Running: " + sql);
    34         ResultSet res = stmt.executeQuery(sql);
    35         if (res.next()) {
    36             System.out.println(res.getString(1));
    37         }
    38 
    39         // describe table
    40         sql = "describe " + tableName;
    41         System.out.println("Running: " + sql);
    42         res = stmt.executeQuery(sql);
    43         while (res.next()) {
    44             System.out.println(res.getString(1) + "	" + res.getString(2));
    45         }
    46 
    47 
    48         sql = "select * from " + tableName;
    49         res = stmt.executeQuery(sql);
    50         while (res.next()) {
    51             System.out.println(String.valueOf(res.getInt(1)) + "	"
    52                                                + res.getString(2));
    53         }
    54 
    55         sql = "select count(1) from " + tableName;
    56         System.out.println("Running: " + sql);
    57         res = stmt.executeQuery(sql);
    58         while (res.next()) {
    59             System.out.println(res.getString(1));
    60         }
    61     }
    62 }

    结果:


    jdbc链接中后面两个参数不应该是用户名和密码,我傻乎乎的都天上,但是测试无论填什么或者不填都可以链接成功

    为什么会这样,难道hive默认谁都可以链接?


    用到的jar包

    1 hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar
    2 $HIVE_HOME/lib/hive-exec-0.11.0.jar 
    3 $HIVE_HOME/lib/hive-jdbc-0.11.0.jar 
    4 $HIVE_HOME/lib/hive-metastore-0.11.0.jar  
    5 $HIVE_HOME/lib/hive-service-0.11.0.jar   
    6 $HIVE_HOME/lib/libfb303-0.9.0.jar   
    7 $HIVE_HOME/lib/commons-logging-1.0.4.jar  
    8 $HIVE_HOME/lib/slf4j-api-1.6.1.jar

    代码是摘抄的。

    http://www.iteblog.com/archives/846


    欲为大树,何与草争;心若不动,风又奈何。
  • 相关阅读:
    你绝对想不到R文件找不到(cannot resolve symbol R)的原因
    你绝对想不到R文件找不到(cannot resolve symbol R)的原因
    如何安装gulp
    简单实现IE9及以下对placeholder的兼容性
    vue 新闻列表滚动效果
    2018数据技术嘉年华-金融峰会·重庆站即将起航!
    高手过招:用SQL解决环环相扣的刑侦推理问题(罗海雄版本)
    实战课堂:为什么更换存储之后一切正常但RAC集群启动不了?
    MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
    Druid数据库连接池和Druid内置监控系统简单介绍
  • 原文地址:https://www.cnblogs.com/admln/p/hive-java-api-operate.html
Copyright © 2011-2022 走看看