在 Kubernetes 上
以 MR3 作为执行引擎,用户可以直接在 Kubernetes 上运行 Hive(MR3版),而无需安装 Hadoop。Apache Hive 的所有企业功能都同样可用,例如高可用性、Kerberos 身份验证、SSL 数据加密和 Apache Ranger 授权。在公有云上,Hive on MR3 可以利用 MR3 支持的自动扩缩容功能。
使用 Hive on MR3 创建的 Kubernetes 集群由以下组件组成:
- Hive on MR3 的关键组件 -- Metastore、HiveServer2、MR3 DAGAppMaster 和 MR3 ContainerWorkers
- Apache Ranger 用于管理授权
- MR3-UI 和 Grafana 用于可视化
我们假设您熟悉 Kubernetes 的关键概念,如 Pod、Container、Volume、ConfigMap 和 Secret。
先决条件
在 Kubernetes 上运行 Hive on MR3 有以下先决条件:
- 一个正在运行的 Kubernetes 集群可用。
- 一个运行 Metastore 数据库的数据库服务器。
- HDFS 或 S3(或 S3 兼容存储)可用于存储仓库。使用 S3 需要访问凭证。
- 用户可以创建 PersistentVolume 或将临时数据存储在 HDFS 或 S3 上。PersistentVolume 应该对以下用户可写:1) UID 1000 的用户,和 2) 如果使用 Ranger 进行授权,则需要对
nobody用户(对应 root 用户)可写。 - 每个工作节点都有一组相同的本地目录用于存储中间数据(映射到 hostPath 卷)。这些目录应该对 UID 1000 的用户可写,因为所有容器都以 UID 1000 的非 root 用户身份运行。
- 用户可以运行 Beeline(或任何客户端程序)连接到在给定地址运行的 HiveServer2。
在我们的示例中,我们使用 MySQL 服务器作为 Metastore 数据库,但也可以使用 PostgreSQL 和 MS SQL。
继续阅读以下指南之一:
- Shell 脚本 介绍如何使用可执行的 shell 脚本在 Kubernetes 上运行 Hive on MR3。
- Helm 介绍如何使用 Helm 在 Kubernetes 上运行 Hive on MR3。
- 通用流程 包含与 Hive on MR3 中的压缩和安全相关的其他流程。
信息
要尝试而无需安装其他依赖项,请使用可执行的 shell 脚本。
Helm 在设置配置参数方面可以减少一定的复杂性。
提示
我强烈建议用户在 Kubernetes 上运行 Hive on MR3 之前先尝试在 Minikube 上运行它。
提示
在尝试在 Kubernetes 上运行 Hive on MR3 之前,请检查 Kubernetes 集群中是否已禁用交换空间。