天天看点

Hive1/2到Hive3升级规划工具

如何使用

包含在 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
8.0 No CDH/HDP 不支持
MariaDB 10.1 No,但应该像 10.2 一样工作
10.2
PostgreSQL 9.6 No,但应该工作
10 现场测试,可能仍然是测试的比较粗糙
11 No,但应该在 10 下工作
Oracle 12
sre
不,但应该像 10.2 一样工作

确保${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中的变量控制。

  1. hive-sre 版本信息
  2. 元存储 RDBMS 类型
  3. 线程状态 a,b,c - d,e,f,j
    • (a) 核心池大小
    • (b) 最大池大小
    • (c) 最大池大小
    • (d) 活动线程数
    • (e) 已完成的线程任务
    • (f) 剩余线程队列
    • (j) 总任务数
  1. 程序名称
  2. 程序计数 [Total/Completed]
    • Total 是该流程的所有任务的完整计数
    • Completed 是此过程已完成的任务数。
  1. 程序检查 - 程序的子级
  2. 程序检查计数 - errors/successes
  3. 速度 - 以秒为单位的总时间进程已运行。
  4. 速度 - 自作业开始以来每秒完成的平均任务数。
    • 请注意,并非所有任务都是平等的。任务时间因集群的内容和被检查的区域而异。并且很大程度上受 Namenode 性能的影响。

小贴士

  • loc_scan 的排序结果..
sort -k 1 --field-separator="|" loc_scan_missing_dirs.md > loc_scan_missing_dirs_sorted.txt      

原文链接: