Hive1/2到Hive3升级规划工具

2021-07-02 10:29:49 浏览数 (1)

描述

将集群从 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)。
代码语言:javascript复制
tar xzvf hive-sre-dist.tar.gz
cd hive-sre
  • 作为 root 用户,chmod x 3 个 shell 脚本文件。
  • 运行“setup.sh”。
代码语言:javascript复制
./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中的变量控制。

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

小贴士

  • loc_scan 的排序结果..
代码语言:javascript复制
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

0 人点赞