zoukankan      html  css  js  c++  java
  • java连接Hive的几种方式

    测试环境 Hadoop 0.20.2版本、Hive-0.5.0版本、JDK1.6

    1、一般来说我们对hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连接都存放一个元数据,各个之间都不相同,所以,对于这样的模式我建议是用来做一些测试比较合适,并不适合做产品的开发和应用。

    2、JDBC连接的方式,当然还有其他的连接方式,比如ODBC等, 这种方式很常用,可以在网上随便找到,就不再累赘了。

    不稳定,经常会被大数据量冲挂,不建议使用。

    3、这种方式是直接利用Hive的 Driver class 来直接连接,感觉这种方式不通过JDBC,应该速度会比较快一点(未经验证)。我只是在local模式下测试过。

    import org.apache.hadoop.hive.conf.HiveConf;
    import org.apache.hadoop.hive.ql.Driver;
    import org.apache.hadoop.hive.ql.session.SessionState;

    public class Test {

        public static void main(String args[]) {
            Vector<String> res = new Vector<String>();
            String sql = "SELECT * from test";
            Driver driver = new Driver(new HiveConf(SessionState.class));
            int ret = driver.run(sql);
            try {
                driver.getResults(res);
            } catch(IOException e) {
                e.printStackTrace();
            }
            driver.close();
            System.out.println(driver.getMaxRows());
            try {
                System.out.println(driver.getSchema());
                //System.out.println(driver.getThriftSchema());
            } catch(Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }        
    //        System.out.println(res);
    //        System.out.println(ret);
        }
    }

  • 相关阅读:
    基于 HTML5 Canvas 的交互式地铁线路图
    基于HTML5的WebGL实现json和echarts图表展现在同一个界面
    基于HTML5和WebGL的3D网络拓扑结构图
    JavaScript基础:创建对象
    使用ksoap2报java.io.EOFException异常问题解决方法
    Silverlight之我见
    今年的IT大趋势是虚拟现实
    Apache服务器部署ASP.NET网站
    Bootstrap优秀网站:乐窝网
    [转载]C#读取Excel几种方法的体会
  • 原文地址:https://www.cnblogs.com/bluecoder/p/3818557.html
Copyright © 2011-2022 走看看