我正在 EMR 上运行一系列MapReduce
作业。但是,第 3 个MapReduce
作业需要第 2 个MapReduce
作业的数据输出,输出本质上是超过一百万个键值对(键和值都小于 1KB)。有没有一种好方法可以将此信息存储在与 EMR 相同的机器上的分布式存储中,以便后续作业可以访问该信息?我看了看DistributedCache
,但它更多的是用于存储文件吗?我不确定 Hadoop 是否针对存储一百万个小文件进行了优化..
或者也许我可以以某种方式使用另一项MapReduce
工作将所有键值对组合到一个输出文件中,然后将整个文件放入DistributedCache
.
请指教。谢谢!