Hive-复制具有分区的数据库架构并在另一个Hive实例中重新创建

时间:2019-05-15 15:31:49

标签: apache-spark hive create-table database-partitioning hive-partitions

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

如何对配置单元元数据执行相同操作?我需要新的HDFS实例配置单元,以便使用其现有分区来定义此数据库及其表,就像在原始位置一样。而且,当然,他们通常需要维护其原始架构,同时还要更新hdfs外部表的位置。

很高兴使用直接的配置单元命令,spark或任何开放源代码且易于使用的常规CLI实用程序。我没有实际的hadoop集群(这是云存储),因此请避免依赖于map reduce / etc(如Sqoop)的答案。

1 个答案:

答案 0 :(得分:1)

使用Hive命令:

SHOW CREATE TABLE tablename;

这将打印创建表格语句。复制表类型并将其更改为外部,位置,架构,列名(如有必要)等,然后执行。

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

 MSCK [REPAIR] TABLE tablename;

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

ALTER TABLE tablename RECOVER PARTITIONS;

这将添加Hive分区元数据。在此处查看手册:RECOVER PARTITIONS