描述
将集群从 Hive1 /2升级到 Hive3?这包括:CDH5→CDP、CDH6→CDP、HDP2→HDP3 或 HDP2→CDP。这种升级的挑战有多种形式。此工具旨在(多次)在 Hive1/2 环境中运行,以收集有关在尝试升级之前需要解决的“什么”的详细信息。
如何使用
包含在 Github 自述文件中:https://github.com/dstreev/cloudera_upgrade_utils/blob/master/hive-sre/README.md
版本和变化
日期 | 标题 | 关联 | 笔记 | 由某人交付 |
---|---|---|---|---|
2020-12-03 | 最新发布 | 发布 | David Streever | |
2021-03-29 | v2.3.5.0 | 发布 | HiveStrictManagedMigration 白名单。Kudu Legacy Class DiscoveryDECIMAL Legacy Issue DiscoveryPostgreSQL 分区计数的语法修复 | David Streever |
2021-05-03 | v2.3.5.3 | 发布 | 修复了非 ha hdfs 环境的问题(hadoop-cli 依赖项)。增加了我们可以处理的数据库数量的可扩展性。 | David Streever |
2021-05-07 | v2.3.5.6 | 发布 | 更改了规模的线程模型和更好的大型元存储资源管理。修复了 Metastore 报告。 | David Streever |
工具介绍
此应用程序有 3 个子程序:
- sre 用于查找由小文件和过多分区引起的潜在“Hive”性能问题。
- u3 用于审查 Hive3 升级计划的“Hive 1/2”环境。
- cli是一个 hdfs 交互式客户端。它是hive-sre应用程序的核心部分,因此我们通过hive-sre-cli可执行文件在此处公开了 shell 。
- perf 用于检查 JDBC 连接的吞吐量。
支持的 Metastore DB
子程序 | 数据库 | 版本 | 已测试 | 笔记 |
---|---|---|---|---|
u3 | MySQL | 5.6 | 有限的测试 | 建议升级5.7。这是用于 HDP 的较低 MySql 支持的环境 |
5.7 | Yes | |||
5.7 | Yes | |||
8.0 | No | CDH/HDP 不支持 | ||
MariaDB | 10.1 | No,但应该像 10.2 一样工作 | ||
10.2 | Yes | |||
PostgreSQL | 9.6 | No,但应该工作 | ||
10 | Yes | 现场测试,可能仍然是测试的比较粗糙 | ||
11 | No,但应该在 10 下工作 | |||
Oracle | 12 | Yes | 现场测试,可能仍然是测试的比较粗糙 | |
sre | MySQL | 5.6 | 有限的测试 | 建议升级5.7。这是用于 HDP 的较低 MySql 支持的环境 |
5.7 | Yes | |||
5.7 | Yes | |||
8.0 | No | CDH/HDP 不支持 | ||
MariaDB | 10.1 | 不,但应该像 10.2 一样工作 | ||
10.2 | Yes | |||
PostgreSQL | 9.6 | No,但应该工作 | ||
10 | Yes | 现场测试,可能仍然是测试的比较粗糙 | ||
11 | No,但应该在 10 下工作 | |||
Oracle | 12 | Yes | 现场测试,可能仍然是测试的比较粗糙 |
确保${HOME}/.hive-sre/aux_libs目录中有适合数据库的驱动程序。
我已经尝试尽可能多地匹配 HDP 2.6.5 和 3.1.x 及CDH5/6支持的数据库。
获取二进制文件
使用预建的二进制文件!!!如果不下载和构建“Hadoop Cli”,您将没有从头开始构建所需的依赖项。
不要构建,在这里下载最新的二进制文件!!!
- 将发布的“tar.gz”文件下载到临时位置。
- 解压文件 (tar.gz)。
tar xzvf hive-sre-dist.tar.gz
cd hive-sre
- 作为 root 用户,chmod x 3 个 shell 脚本文件。
- 运行“setup.sh”。
./setup
这将创建和安装hive-sre和hive-sre-cli应用程序到您的路径。
在具有默认配置的主机上试用(如果已进行 kerberized,请先获取票证):
代码语言:javascript复制hive-sre-cli
或者
代码语言:javascript复制hive-sre
配置 hive-sre
有关详细信息,请参阅配置文档。
运行
为了简化下面的应用程序的启动,请配置这些核心环境变量。
代码语言:javascript复制hive-sre sre -db priv_dstreev -cfg /tmp/test.yaml -o ./sre-out`
输出
输出是一组带有操作和错误信息(遇到时)的文件。这些文件可能是txt文件或markdown. 您可能希望使用markdown查看器来更轻松地查看这些报告。markdown查看器需要支持github markdown表。
sre和u3的UI细节
只有活动进程会显示在 UI 中。UI 将每秒刷新一次并在下方显示当前详细信息。
u3中定义了几个“进程” 。每个进程将运行 1 个或多个“子进程”。UI 中的计数器列表特定于该部分中的“进程”和“子进程”。
并发进程数由parallelism上面定义的配置yaml中的变量控制。
- hive-sre 版本信息
- 元存储 RDBMS 类型
- 线程状态 a,b,c - d,e,f,j
- (a) 核心池大小
- (b) 最大池大小
- (c) 最大池大小
- (d) 活动线程数
- (e) 已完成的线程任务
- (f) 剩余线程队列
- (j) 总任务数
- 程序名称
- 程序计数 [Total/Completed]
- Total 是该流程的所有任务的完整计数
- Completed 是此过程已完成的任务数。
- 程序检查 - 程序的子级
- 程序检查计数 - errors/successes
- 速度 - 以秒为单位的总时间进程已运行。
- 速度 - 自作业开始以来每秒完成的平均任务数。
- 请注意,并非所有任务都是平等的。任务时间因集群的内容和被检查的区域而异。并且很大程度上受 Namenode 性能的影响。
小贴士
- loc_scan 的排序结果..
sort -k 1 --field-separator="|" loc_scan_missing_dirs.md > loc_scan_missing_dirs_sorted.txt
原文链接:https://github.com/dstreev/cloudera_upgrade_utils/blob/master/hive-sre/README.md