本文是大数据系列第 16 篇,介绍 HiveServer2 的部署配置以及如何使用 Beeline 客户端进行远程连接。

完整图文版(含截图):CSDN 原文 | 掘金

什么是 HiveServer2

HiveServer2(HS2)是 Hive 提供的一个服务组件,允许远程客户端通过 Thrift 协议执行 SQL 查询并返回结果,支持跨平台、跨语言访问。

核心特性:

  • 提供 JDBC/ODBC SQL 接口
  • 支持多客户端并发连接与会话隔离
  • 支持 Kerberos、LDAP 等多种认证方式
  • 与 YARN/LLAP 集成进行资源管理
  • 默认端口:10000(Thrift)、10002(Web UI)

配置步骤

1. 配置 Hadoop 代理用户

HiveServer2 需要以代理用户身份提交作业,在所有节点的 core-site.xml 中添加:

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

2. 开启 WebHDFS

hdfs-site.xml 中启用 WebHDFS 支持:

<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>

3. 配置 hive-site.xml

<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
</property>
<property>
  <name>hive.server2.authentication</name>
  <value>NONE</value>
</property>

配置修改后,需要重启 HDFS 和 YARN 使其生效。

启动 HiveServer2

在主节点(h121)上启动 HiveServer2:

nohup hiveserver2 &

验证服务是否正常监听 10000 端口:

lsof -i:10000

也可以访问 http://h121:10002 查看 Web UI,确认服务状态。

使用 Beeline 远程连接

Beeline 是 HiveServer2 的官方命令行客户端,支持从任意节点远程连接。以从 h122 连接 h121 上的 HiveServer2 为例:

beeline
!connect jdbc:hive2://h121.wzk.icu:10000

输入用户名(如 root)和密码(可为空),连接成功后即可执行 HQL:

show databases;
use default;
show tables;
select * from test limit 10;

HCatalog 简介

HCatalog 是基于 Hive Metastore 构建的表存储管理层,向 MapReduce、Pig、Spark 等计算框架暴露 Hive 的元数据。使用 HCatalog 的好处:

  • 无需关心底层数据格式(ORC、Parquet、TextFile)
  • 支持按分区和字段选择性读取,不必扫描全表
  • 统一多个计算引擎对同一份数据的访问方式

HCatalog 随 Hive 一同安装,无需额外部署,启用后可通过 hcat 命令行工具操作。