1

我已将具有分区配置单元表的数据库的数据和文件夹结构从一个 HDFS 实例复制到另一个实例。

我怎样才能对 hive 元数据做同样的事情?我需要新的 HDFS 实例的配置单元来使用其现有分区定义此数据库及其表,就像它在原始位置中一样。而且,当然,他们通常需要在更新 hdfs 外部表位置时维护其原始模式。

乐于使用直接的 hive 命令、spark 或任何开源且随时可用的通用 CLI 实用程序。我没有实际的 hadoop 集群(这是云存储),所以请避免依赖 map reduce/etc(如 Sqoop)的答案。

4

1 回答 1

1

使用 Hive 命令:

SHOW CREATE TABLE tablename;

这将打印创建表语句。如有必要,将表类型复制并更改为外部、位置、模式、列名等并执行。

创建表后,使用此命令创建分区元数据

 MSCK [REPAIR] TABLE tablename;

Amazon Elastic MapReduce (EMR) 的 Hive 版本上的等效命令是:

ALTER TABLE tablename RECOVER PARTITIONS;

这将添加 Hive 分区元数据。请参阅此处的手册:恢复分区

于 2019-05-15T18:21:31.950 回答