将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生成的输出,以验证新的元存储数据库中是否没有表。
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
SO资源 » 将Hive Metastore迁移到Azure