zoukankan      html  css  js  c++  java
  • Hive 教程(八)-hiveserver2

    hive 的另外一种启动方式是 hiveserver2,它是提供了一种服务,使得我们可以远程操作 hive,就像操作 mysql 一样

    hiveserver1

    既然有 hiveserver2,肯定有 hiveserver1,不过已经被淘汰,不多做解释,hiveserver1 的缺点是不支持并发,hiveserver2 支持

    How to Configure

    Configuration Properties in the hive-site.xml File

    hive.server2.thrift.min.worker.threads – Minimum number of worker threads, default 5.
    hive.server2.thrift.max.worker.threads – Maximum number of worker threads, default 500.
    hive.server2.thrift.port – TCP port number to listen on, default 10000.
    hive.server2.thrift.bind.host – TCP interface to bind to.

    很容易理解,注意他们都有默认值,也就是不是必须配置

    How to Start

    $HIVE_HOME/bin/hiveserver2

    or

    $HIVE_HOME/bin/hive --service hiveserver2

    参数查看

    $HIVE_HOME/bin/hive --service hiveserver2 -H
    Starting HiveServer2
    usage: hiveserver2
     -H,--help                        Print help information
        --hiveconf <property=value>   Use value for given property

    Web UI for HiveServer2

    端口为 10002

    Beeline – Command Line Shell

    hiveserver2 提供了远程操作 hive 的服务,他的客户端有两种,一种是 java、python 等编程语言,一种是本地 shell,这里只介绍 shell,编程语言会专门写一篇博客

    [root@hadoop10 bin]# beeline   启动命令
    Beeline version 2.3.6 by Apache Hive
    beeline> !connect jdbc:hive2://hadoop10:10000  # 启动后输入该命令
    Connecting to jdbc:hive2://hadoop10:10000
    Enter username for jdbc:hive2://hadoop10:10000: postgres
    Enter password for jdbc:hive2://hadoop10:10000: ********
    Connected to: Apache Hive (version 2.3.6)
    Driver: Hive JDBC (version 2.3.6)
    Transaction isolation: TRANSACTION_REPEATABLE_READ
    0: jdbc:hive2://hadoop10:10000> show databases;
    +----------------+
    | database_name  |
    +----------------+
    | default        |
    | hive1          |
    | hive1101       |
    +----------------+
    3 rows selected (1.724 seconds)

    1. 启动 shell 的命令是  beeline,她也是在 hive 的 bin 目录下;

    2. 启动后输入命令 

    !connect jdbc:hive2://hadoop10:10000    【加粗的是固定的,hive2 代表数据库类型】

      // 也可以在连接时指定数据库 !connect jdbc:hive2://hadoop10:10000/hive1101  【hive1101 是数据库名】

      // 还可以指定用户名和密码  !connect jdbc:hive2://localhost:10000 user  password

    3. 输入用户名、密码

      // 如果没有专门配置用户名和密码,他们分别是 关系型数据库,也就是存放元数据的数据库的 用户名和密码

      // 也可以配置用户名和密码,配置方法是在 hive 的 hive-site.xml 中加入

    <property>
      <name>beeline.hs2.connection.user</name>
      <value>hive</value>
    </property>
    <property>
      <name>beeline.hs2.connection.password</name>
      <value>hive</value>
    </property>

     

    异常记录

    Error: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.10.10:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.ap
    ache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate hive (state=08S01,code=0)

    解决方法

    在 hadoop 的 core-site.xml 末尾加上

    <property>     
        <name>hadoop.proxyuser.root.hosts</name>     
        <value>*</value>
     </property> 
    <property>     
        <name>hadoop.proxyuser.root.groups</name>    
        <value>*</value> 
    </property>

    注意集群中每个节点都要加

    以上都是简单用法,详情参考 官网

    参考资料:

    https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2     HiveServer2 官网

    https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients?searchId=AQ9UBBKHW       HiveServer2 Clients官网

    https://blog.csdn.net/u011495642/article/details/84305944  异常解决

    https://blog.csdn.net/zhanglh046/article/details/78572926

  • 相关阅读:
    #研发解决方案#研发协作平台CloudEngine
    人生做出的选择越多,友谊的小船翻得越快?
    告诉别人你是谁:边界的那些事儿
    如何从零开始搭建一个技术平台?
    Windows10 自动配置切换IP地址
    Human disease database
    R语言install.packages("jpeg")报错
    RStudio中,出现中文乱码问题的解决方案(修改文件编码)
    How do I run Adobe Flash on Chrome?
    RGB颜色查询对照表
  • 原文地址:https://www.cnblogs.com/yanshw/p/11792799.html
Copyright © 2011-2022 走看看