zoukankan      html  css  js  c++  java
  • hive Beeline plus HiveServer2简单使用

       HiveServer2是经常与beeline一起使用,可以用jdbc客户端远程连接,一般用于生产环境。

    在提供传统客服端的功能之外,还提供其他功能。

     Beeline连接

    1.先在hadoop集群启动HiveServer2

    启动命令:hiveserver2

    启动日志在hive.log中查看

    2.再启动Beeline

    命令: beeline

    3.连接

    !connect jdbc:hive2://localhost:10000

     Beeline命令

    传统命令与Beeline命令示例比较:

    1.传统:   quit;

    2.Beeline:   !quit

    SQL语句操作还是和传统一样

    HiveServer2 web界面管理

    除了在HiveServer2服务端可以看到日志,还可以在hive -site.xml中配置 ip端口后,可提供ui界面

    <property>
    <name>hive.server2.webui.host</name>
    <value>localhost</value>
    </property>
    <property>
    <name>hive.server2.webui.port</name>
    <value>10002</value>
    </property>

    JDBC连接

    导入hive依赖包,hadoop-common及其相关依赖

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class HiveServerBeeline {
        // 驱动全名
        private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    
        public static void main(String[] args) throws SQLException {
            // TODO Auto-generated method stub
            try {
                // JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段 和 new 示例化对象类似
                Class.forName(driverName);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.exit(1);
            }
            // 连接并登陆数据库
            Connection con = DriverManager.getConnection("jdbc:hive2://192.192.192.192:10000/default", "user", "passwd");
            // 创建Statement对象
            Statement stmt = con.createStatement();
            String sql = "show databases";
            // stmt.execute("create external table if not exists testdb.test(id int,name String)");
            ResultSet res = stmt.executeQuery(sql);

        if (res.next()) { System.out.println(res.getString(1)); } }

    没导入hadoop-common依赖会报异常:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
        at org.apache.hive.jdbc.HiveConnection.createUnderlyingTransport(HiveConnection.java:418)
        at org.apache.hive.jdbc.HiveConnection.createBinaryTransport(HiveConnection.java:438)
        at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:225)
        at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:182)
        at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at hiveservertwo.HiveServerBeeline.main(HiveServerBeeline.java:32)
    Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 8 more
  • 相关阅读:
    【漏洞分析】5次shift漏洞破解win7密码
    skyler实战渗透笔记(五)—Tr0ll
    skyler实战渗透笔记(四)—Raven2
    skyler实战渗透笔记(三)—Raven
    python读写excel文件
    python_列表
    mysql安装教程
    centos7安装RabbitMQ教程
    centos7安装mongodb4.2.15教程
    tomcat9安装教程
  • 原文地址:https://www.cnblogs.com/jottings/p/7879731.html
Copyright © 2011-2022 走看看