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

扫描二维码关注公众号,回复: 7742896 查看本文章

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

猜你喜欢

转载自www.cnblogs.com/yanshw/p/11792799.html