HiveServer2 是一种可选的 Hive 内置服务,可以允许远程客户端使用不同编程语言向 Hive 提交请求并返回结果。HiveServer2 是 HiveServer1 的改进版,主要解决了无法处理来自多个客户端的并发请求以及身份验证问题。具体可以参阅 一起了解一下HiveServer2。下面我们具体看一下如何配置 HiveServer2。

1. Thrift服务配置

假设我们已经成功安装了 Hive,如果没有安装,可以参阅 Hive 安装与配置。在启动 HiveServer2 之前,我们需要先进行一些配置:

<property>
  <name>hive.server2.transport.mode</name>
  <value>binary</value>
  <description>
    Expects one of [binary, http]. Transport mode of HiveServer2.
  </description>
</property>

<property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>

默认情况下,HiveServer2 启动使用的是默认配置。这些配置主要是服务启动的 Host 和端口号以及客户端和后台操作运行的线程数。我们可以重写 hive-site.xml 配置文件中的配置项来修改 HiveServer2 的默认配置:

配置项

默认值

说明

hive.server2.transport.mode

binary

HiveServer2 的传输模式,binary或者http

hive.server2.thrift.port

10000

HiveServer2 传输模式设置为 binary 时,Thrift 接口的端口号

hive.server2.thrift.http.port

10001

HiveServer2 传输模式设置为 http 时,Thrift 接口的端口号

hive.server2.thrift.bind.host

localhost

Thrift服务绑定的主机

hive.server2.thrift.min.worker.threads

5

Thrift最小工作线程数

hive.server2.thrift.max.worker.threads

500

Thrift最大工作线程数

hive.server2.authentication

NONE

客户端认证类型,NONE、LDAP、KERBEROS、CUSTOM、PAM、NOSASL

hive.server2.thrift.client.user

anonymous

Thrift 客户端用户名

hive.server2.thrift.client.password

anonymous

Thrift 客户端密码

2. 启动

启动 HiveServer2 非常简单,我们需要做的只是运行如下命令即可:

$HIVE_HOME/bin/hiveserver2 &

或者

$HIVE_HOME/bin/hive --service hiveserver2 &

检查 HiveServer2 是否启动成功的最快捷的办法就是使用 netstat 命令查看 10000 端口是否打开并监听连接:

netstat -nl | grep 10000

3. 验证

可以通过如下 Beeline 命令连接到 HiveServer2 来验证我们的 HiveServer2 是否成功:

`beeline -u  <url> -n <username> -p <Password>`

 

4. Web UI

Hive 从 2.0.0 版本开始,为 HiveServer2 提供了一个简单的 WEB UI 页面,在页面中我们可以直观的看到当前链接的会话、历史日志、配置参数以及度量信息。默认情况下,Web UI 端口为 10002。

如果要开启 Web UI 需要在 hive-site.xml 配置文件中修改配置:

  • hive.server2.webui.host
  • hive.server2.webui.port
<property>
  <name>hive.server2.webui.host</name>
  <value>127.0.0.1</value>
</property>

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

配置完成之后启动 hiveserver2 通过 http://localhost:10002/ 地址访问 Web UI: