我已将具有分区配置单元表的数据库的数据和文件夹结构从一个HDFS实例复制到另一个。
如何对配置单元元数据执行相同操作?我需要新的HDFS实例配置单元,以便使用其现有分区来定义此数据库及其表,就像在原始位置一样。而且,当然,他们通常需要维护其原始架构,同时还要更新hdfs外部表的位置。
很高兴使用直接的配置单元命令,spark或任何开放源代码且易于使用的常规CLI实用程序。我没有实际的hadoop集群(这是云存储),因此请避免依赖于map reduce / etc(如Sqoop)的答案。
答案 0 :(得分:1)
使用Hive命令:
SHOW CREATE TABLE tablename;
这将打印创建表格语句。复制表类型并将其更改为外部,位置,架构,列名(如有必要)等,然后执行。
创建表后,使用此命令创建分区元数据
MSCK [REPAIR] TABLE tablename;
Amazon Elastic MapReduce(EMR)的Hive版本上的等效命令为:
ALTER TABLE tablename RECOVER PARTITIONS;
这将添加Hive分区元数据。在此处查看手册:RECOVER PARTITIONS