如何使用
包含在 Github 自述文件中:https://github.com/dstreev/cloudera_upgrade_utils/blob/master/hive-sre/README.md
工具介绍
此应用程序有 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.gzcd hive-sre
- 作为 root 用户,chmod +x 3 个 shell 脚本文件。
- 运行“setup.sh”。
./setup
这将创建和安装hive-sre和hive-sre-cli应用程序到您的路径。
在具有默认配置的主机上试用(如果已进行 kerberized,请先获取票证):
hive-sre-cli
或者
hive-sre
配置 hive-sre
有关详细信息,请参阅配置文档。
运行
为了简化下面的应用程序的启动,请配置这些核心环境变量。
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