将Hive Metastore迁移到Azure

本文提供了两种Hive元数据从本地迁移到Azure HDInsight的最佳实践。

前言

在将Hadoop工作负载从本地CDH群集迁移到Azure的同时,我们还有一项任务是将现有的本地Hive元存储迁移。 本文提供了两种Hive元数据从本地迁移到Azure HDInsight的最佳实践。

方法1:使用数据库复制进行Hive Metastore迁移

在本地Hive Metastore DB和HDInsight Hive Metastore DB之间设置数据库复制。 ollowing命令可用于设置两个实例之间的复制:

./hive --service metatool -updateLocation hdfs://<namenode>:8020/ wasb://<container_name>@<storage_account_name>.blob.core.windows.net/

上面的“ hive metatool”将把hive metastore数据从给定的HDFS复制到目标WASB / ADLS / ABFS

建议:当源和目标元数据数据库相同时,或者在设置或迁移现有应用程序时,建议使用此方法。

方法2:使用脚本进行Hive Metastore迁移

  • 使用本地脚本中的hive_table_dd.sh文件从本地Hive Metastore生成Hive DDL:

    // SQL
    #!/bin/bash
    2
    rm - f tableNames.txt rm - f HiveTableDDL.txt hive - e "use $1; show tables;" > tableNames.txt wait cat tableNames.txt | while read LINE do hive - e "use $1;show create table $LINE;" >> HiveTableDDL.hql echo - e "\n" >> HiveTableDDL.hql done rm - f tableNames.txt echo "Table DDL generated"
  • 通过使用“ metastoreDB”作为参数来运行上述shell脚本:bash hive_table_dd.sh metastoreDB

  • 将生成的DDL编辑到HiveTableDDL.hql中,并将HDFS URL替换为WASB / ADLS / ABFS URL。

  • 在HDInsight群集上使用的目标Hive Metastore数据库上运行更新的DDL:

use metastoreDB;
hive - f HiveTableDDL.hql;

确保本地和Azure HDInsight Hive实例之间的Hive Metastore版本兼容。

建议:当源和目标元数据数据库不同时,或者在尝试设置新环境时,建议使用此方法。

验证:为了验证Hive Metastore是否已完全迁移,请在第1步中在两个Metastore DB(即源数据库和目标数据库)上运行bash脚本,以打印所有Hive表及其数据位置。

比较内部部署和Azure HDI生成的输出,以验证新的元存储数据库中是否没有表。

SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 将Hive Metastore迁移到Azure