hive alter table concatenate 命令风险

hive alter table concatenate command risks

我一直在使用 tez 引擎来 运行 map reduce 作业。我有一份 MR 工作需要很长时间 运行,因为我注意到我有超过 20k 个文件,每个文件有 1 个条带,tez 不会根据文件数量均匀分布映射器,而是根据条带数量。我可以有一堆映射器只有一个文件但有很多条纹,一些映射器处理 15k 文件但条纹数量与另一个相同。

作为解决方法测试,我使用 ALTER TALE table PARTITION (...) CONCATENATE 来减少要处理的文件数量,使每个文件的条带分布更均匀,现在地图作业 运行 非常好。

我担心的是,我没有在文档中找到运行执行此命令和丢失数据是否存在任何风险,因为它适用于相同的文件。

我正在尝试评估使用连接来减少 MR 作业之前的文件数量与使用读取文件并将分桶输出放入单独位置的分桶相比是否更好。如果失败,我不会丢失源数据。

连接每个分区需要 1 分钟,而分桶需要更多时间但不会有丢失源数据的风险。

我的问题:运行ning concatenate 命令时是否存在数据丢失的风险?

谢谢!

它应该像重写查询中的 table 一样安全。它使用相同的机制:首先在暂存中准备结果,然后暂存移动到 table 或分区位置。

连接作为一个单独的 MR 作业,在暂存目录中准备连接的文件,并且 只有在一切都没有错误的情况下,才将它们移动到 table 位置。您应该会在日志中看到类似这样的内容:

INFO  : Loading data to table dbname.tblName partition (bla bla) from /apps/hive/warehouse/dbname.db/tblName/bla bla partition path/.hive-staging_hive_2018-08-16_21-28-01_294_168641035365555493-149145/-ext-10000