zoukankan      html  css  js  c++  java
  • 联接HIVE SERVER客户端的三种方式

    在Hive/bin 目录下输入./hive --service hiveserver 代表hive启动了服务器模式。

    和普通模式不同的是,这时hive同时启动了一个名为thrift的服务器。

    你不用去研究这个服务器的原理,认为他是一个传递信息的人就好,你可以通过他向hive发送命令,然后hive再把命令送给hadoop。

    1.命令行模式:

       ./hive -h127.0.0.1 -p10000

       简单明了,IP和端口。

    2.JDBC模式:

         名字很糊人的。
         private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";

         @BeforeClass
         public static void beforeclass() throws SQLException,
                ClassNotFoundException {
                Class.forName(driverName);
                 Connection con = DriverManager.getConnection(
                      "jdbc:hive://127.0.0.1:10000/default", "", "");
                 stmt = con.createStatement();
         }

         @Test
        public void dropTable() {
            try {
                res = stmt.executeQuery("drop table " + tablename);
                 res = stmt.executeQuery("drop table " + basetable);
                // res = stmt.executeQuery("drop table " + agecount);
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }

    上面就是一段通过JDBC删除表的代码。

    和传统的JDBC相比,HIVE的JDBC功能性和易用性我都觉得差很多。

    只不过HIVE的语句风格和传统SQL很像,所以人们才发明了这个东西。有点不伦不类。在UADF方面还不是很好,不是很喜欢。


    3.JAVA客户端

            TTransport transport;
            TProtocol protocol;
            HiveClient client;
            transport = new TSocket("localhost", 10000);
            protocol = new TBinaryProtocol(transport);
            client = new HiveClient(protocol);
            transport.open();
            client.execute("select usercount(userid) from user3");
            transport.close();
           
           很明显,我们调用HIVE的API生成了一个JAVA的HIVE客户端,这个客户端和命令行的客户端效果是一样的。
           改参数,UDAF 都很完美的支持,我比较喜欢这个。

  • 相关阅读:
    JDBC
    SQL语法(3)
    数据库设计和三大范式
    SQL语法(2)
    SQL语法(1)
    数据库的概念以及MYSQL的安装和卸载
    IO流(下)
    IO流(上)
    bash: javac: command not found...
    R语言绘制地图
  • 原文地址:https://www.cnblogs.com/bluecoder/p/3833572.html
Copyright © 2011-2022 走看看