从 Apache Hive 中提取元数据以进行迁移
本文档介绍了如何在运行 Apache Hive 数据或权限迁移之前使用 dwh-migration-dumper
工具提取必要的元数据。
本文档介绍了从以下数据源提取元数据:
- Apache Hive
- Apache Hadoop 分布式文件系统 (HDFS)
- Apache Ranger
- Cloudera Manager
- Apache Hive 查询日志
准备工作
在使用 dwh-migration-dumper
工具之前,请执行以下操作:
安装 Java
您打算运行 dwh-migration-dumper
工具的服务器必须安装 Java 8 或更高版本。如果未安装,请从 Java 下载页面下载并安装 Java。
所需权限
您指定用于将 dwh-migration-dumper
工具连接到源系统的用户账号必须具有从该系统读取元数据的权限。确认此账号具有适当的角色成员资格,可以查询您的平台可用的元数据资源。例如,INFORMATION_SCHEMA
是在多个平台中常见的元数据资源。
安装 dwh-migration-dumper
工具
如需安装 dwh-migration-dumper
工具,请按以下步骤操作:
- 在要运行
dwh-migration-dumper
工具的机器上,从dwh-migration-dumper
工具 GitHub 代码库下载 zip 文件。 如需验证
dwh-migration-dumper
工具 ZIP 文件,请下载SHA256SUMS.txt
文件并运行以下命令:Bash
sha256sum --check SHA256SUMS.txt
如果验证失败,请参阅问题排查。
Windows PowerShell
(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]
将
RELEASE_ZIP_FILENAME
替换为dwh-migration-dumper
命令行提取工具版本的下载 ZIP 文件名,例如dwh-migration-tools-v1.0.52.zip
True
结果表示校验和验证成功。False
结果表示验证错误。确保校验和以及 ZIP 文件从同一发布版本下载并放在同一目录中。提取该 zip 文件。提取工具二进制文件位于通过提取 ZIP 文件创建的文件夹的
/bin
子目录中。更新
PATH
环境变量,以包含提取工具的安装路径。
提取元数据以进行迁移
选择以下选项之一,了解如何提取数据源的元数据:
Apache Hive
运行以下命令,使用 dwh-migration-dumper
工具从 Apache Hive 中提取元数据。
dwh-migration-dumper \
--connector hiveql \
--host HIVE-HOST \
--port HIVE-PORT \
--output gs://MIGRATION-BUCKET/hive-dumper-output.zip \
--assessment \
替换以下内容:
HIVE-HOST
:Apache Hive 实例的主机名HIVE-PORT
:Apache Hive 实例的端口号。如果您使用的是默认9083
端口,则可以跳过此实参。MIGRATION-BUCKET
:您用于存储迁移文件的 Cloud Storage 存储桶。
此命令会将元数据从 Apache Hive 提取到 MIGRATION-BUCKET
目录中名为 hive-dumper-output.zip
的文件中。
HDFS
运行以下命令,使用 dwh-migration-dumper
工具从 HDFS 中提取元数据。
dwh-migration-dumper \
--connector hdfs \
--host HDFS-HOST \
--port HDFS-PORT \
--output gs://MIGRATION-BUCKET/hdfs-dumper-output.zip \
--assessment \
替换以下内容:
HDFS-HOST
:HDFS NameNode 主机名HDFS-PORT
:HDFS NameNode 端口号。如果您使用的是默认8020
端口,则可以跳过此实参。MIGRATION-BUCKET
:您用于存储迁移文件的 Cloud Storage 存储桶。
此命令会将元数据从 HDFS 提取到 MIGRATION-BUCKET
目录中名为 hdfs-dumper-output.zip
的文件中。
从 HDFS 提取元数据时,存在以下几个已知限制:
- 此连接器中的某些任务是可选的,可能会失败,并在输出中记录完整的堆栈轨迹。只要所需任务已成功完成并生成了
hdfs-dumper-output.zip
,您就可以继续进行 HDFS 迁移。 - 如果配置的线程池大小过大,提取过程可能会失败或运行速度低于预期。如果您遇到这些问题,建议您使用命令行实参
--thread-pool-size
减小线程池大小。
Apache Ranger
运行以下命令,使用 dwh-migration-dumper
工具从 Apache Ranger 中提取元数据。
dwh-migration-dumper \
--connector ranger \
--host RANGER-HOST \
--port 6080 \
--user RANGER-USER \
--password RANGER-PASSWORD \
--ranger-scheme RANGER-SCHEME \
--output gs://MIGRATION-BUCKET/ranger-dumper-output.zip \
--assessment \
替换以下内容:
RANGER-HOST
:Apache Ranger 实例的主机名RANGER-USER
:Apache Ranger 用户的用户名RANGER-PASSWORD
:Apache Ranger 用户的密码RANGER-SCHEME
:指定 Apache Ranger 是使用http
还是https
。默认值为http
。MIGRATION-BUCKET
:您用于存储迁移文件的 Cloud Storage 存储桶。
您还可以添加以下可选标志:
--kerberos-auth-for-hadoop
:如果 Apache Ranger 受 Kerberos 保护,而不是受基本身份验证保护,则替换--user
和--password
。您必须先运行kinit
命令,然后再运行dwh-migration-dumper
工具,才能使用此标志。--ranger-disable-tls-validation
:如果 API 使用的 HTTPS 证书是自签名证书,请添加此标志。例如,使用 Cloudera 时。
此命令会将元数据从 Apache Ranger 提取到 MIGRATION-BUCKET
目录中名为 ranger-dumper-output.zip
的文件。
Cloudera
运行以下命令,使用 dwh-migration-dumper
工具从 Cloudera 提取元数据。
dwh-migration-dumper \
--connector cloudera-manager \
--url CLOUDERA-URL \
--user CLOUDERA-USER \
--password CLOUDERA-PASSWORD \
--output gs://MIGRATION-BUCKET/cloudera-dumper-output.zip \
--yarn-application-types APPLICATION-TYPES \
--pagination-page-size PAGE-SIZE \
--assessment \
替换以下内容:
CLOUDERA-URL
:Cloudera Manager 的网址CLOUDERA-USER
:Cloudera 用户的用户名CLOUDERA-PASSWORD
:Cloudera 用户的密码MIGRATION-BUCKET
:您用于存储迁移文件的 Cloud Storage 存储桶。APPLICATION-TYPES
:(可选)Hadoop YARN 中所有现有应用类型的列表。例如SPARK, MAPREDUCE
。PAGE-SIZE
:(可选)指定从第三方服务(例如 Hadoop YARN API)提取多少数据。默认值为1000
,表示每个请求 1000 个实体。
此命令会将元数据从 Cloudera 提取到 MIGRATION-BUCKET
目录中名为 dwh-migration-cloudera.zip
的文件中。
Apache Hive 查询日志
按照 Apache Hive 部分中的步骤从数据仓库中提取元数据和查询日志,提取 Apache Hive 查询日志。然后,您可以将日志上传到包含迁移文件的 Cloud Storage 存储桶。
后续步骤
从 Hadoop 中提取元数据后,您可以使用这些元数据文件执行以下操作: