大数据-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog

点一下关注吧!!!非常感谢!!持续更新!!!

🚀 AI篇持续更新中!(长期更新)

目前2025年06月16日更新到: AI炼丹日志-29 - 字节跳动 DeerFlow 深度研究框架 私有部署 测试上手 架构研究,持续打造实用AI工具指南!📐🤖

💻 Java篇正式开启!(300篇)

目前2025年06月17日更新到: Java-48 深入浅出 Tomcat 手写 Tomcat 实现【01】 MiniCat Bootstrap HttpServlet Request Response MyBatis 已完结,Spring 已完结,Nginx已完结,Tomcat正在更新,深入浅出助你打牢基础!

📊 大数据板块已完成多项干货更新(300篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈! 目前2025年06月13日更新到: 大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解

章节内容

上一节我们完成了:

  • Metastore的基础概念
  • 配置模式:内嵌模式、本地模式、远程模式
  • 实机配置远程模式 并测试

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

HiveServer2

HiveServer是一个服务端接口,使远程客户端可以执行对Hive的查询并返回结果。

HiveServer2(HS2)是一种允许客户端对Hive执行查询的服务。

  • 为Hive提供了一种允许客户端远程访问的服务
  • 基于thrift协议,支持跨平台,跨语言编程对Hive访问
  • 允许远程访问 Hive

主要功能

主要提供的功能有:

  • 提供 SQL 接口:支持 JDBC、ODBC 等接口,客户端可以发送 SQL 语句
  • 远程访问 Hive:支持多客户端并发连接,允许跨网络访问
  • 安全控制:支持认证(如 Kerberos)、授权机制
  • 支持会话隔离:每个客户端的连接是隔离的,支持多租户并发
  • 支持查询队列控制:结合 YARN 或 LLAP,可管理查询资源和调度

安全机制

  • 认证:Kerberos、LDAP、Custom
  • 授权:SQL标准授权、Ranger
  • 代理用户:配置 core-site.xml 中的 hadoop.proxyuser.* 参数

其他组件

HiveServer2 可与以下组件配合使用:

  • HCatalog:暴露 Hive 元数据给 MapReduce、Pig、Spark
  • Ranger/Sentry:用于细粒度的数据权限控制
  • LLAP(Live Long And Process):常驻进程加速查询执行
  • Zookeeper:实现多 HS2 实例负载均衡和高可用(HiveServer2 HA 模式)

典型配置

hive-site.xml 中常见配置项:

xml 复制代码
<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
</property>
<property>
  <name>hive.server2.authentication</name>
  <value>NONE</value> <!-- 或 KERBEROS / LDAP -->
</property>

如果需要通过 WebUI 管理,还需开放 10002 端口(Web UI 默认端口)。

注意事项

  • 默认端口为 10000(Thrift 服务),10002(Web UI)
  • 若使用 Beeline 本地连接 HiveServer2,确保网络连通且服务已启动
  • 在 Kerberos 模式下,需配置相关 ticket 并正确认证

实机配置

配置规划

修改core-site

需要修改 h121 h122 h123的 Hadoop 相关配置:

shell 复制代码
cd /opt/servers/hadoop-2.9.2/etc/hadoop
vim core-site.xml

增加如下的内容:

xml 复制代码
<!-- HiveServer2 连不上10000;hadoop为安装用户 -->
<!-- root用户可以代理所有主机上的所有用户 -->
<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
</property>

修改 hdfs-site

shell 复制代码
cd /opt/servers/hadoop-2.9.2/etc/hadoop
vim hdfs-site.xml

增加如下内容:

xml 复制代码
<!-- HiveServer2 连不上10000;启用 webhdfs 服务 -->
<property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
</property>

配置如下:

启动服务

shell 复制代码
# 启动 hiveserver2 服务
nohup hiveserver2 &
# 检查 hiveserver2 端口
lsof -i:10000

此时访问 Web 页面:

shell 复制代码
h121.wzk.icu:10002

Beeline

在 h122 节点上启动 beeline

shell 复制代码
beeline

连接测试

使用指令进行连接

shell 复制代码
!connect jdbc:hive2://h121.wzk.icu:10000

连接过程中,需要输入账号密码(你的 ROOT账号和密码)

测试命令

sql 复制代码
show databases;
!help
!quit

HCatalog

HCatalog 使用了Hive的元数据存储,这样就使MapReduce这种第三方可以通过Hive进行数据的读取,同时HCatalog还支持用户子啊MapReduce程序中只读取需要的分区表和字段,而不需要读取整个表,只提供一种逻辑上的视图来读取数据。

测试运行:

shell 复制代码
cd $HIVE_HOME/hcatalog/bin

创建表测试:

shell 复制代码
./hcat -e "create table default.test1(id string, name string,
age int)"
相关推荐
6***830510 分钟前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking
信创天地15 分钟前
核心系统去 “O” 攻坚:信创数据库迁移的双轨运行与数据一致性保障方案
java·大数据·数据库·金融·架构·政务
zhyf11926 分钟前
Max395(ubuntu24.04)AMD显卡GLM-4.7-UD-IQ1-M量化模型部署手册
大数据·elasticsearch·搜索引擎
小北方城市网32 分钟前
微服务接口设计实战指南:高可用、易维护的接口设计原则与规范
java·大数据·运维·python·微服务·fastapi·数据库架构
有追求的开发者34 分钟前
2025 年终总结:一个 Python DevOps 的成长之路
后端
有追求的开发者38 分钟前
别再等缓存自己"热"起来了!Python后端必会的预热技巧 🚀
后端
乌暮39 分钟前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·开发语言·后端·学习·面试·java-ee
内存不泄露40 分钟前
基于Django和Vue3的文件分享平台设计与实现
后端·python·django
有追求的开发者40 分钟前
别再搞混了!127.0.0.1 和 localhost 背后的秘密
后端
野生技术架构师42 分钟前
Spring Boot 4.0 预览版深度解析
java·spring boot·后端