gpt4 book ai didi

java - 中间键值对流是否在 hadoop 中优化

转载 作者:可可西里 更新时间:2023-11-01 16:33:08 26 4
gpt4 key购买 nike

mapreduce 作业中的中间键值对 在被洗牌到将运行 reduce 任务的 tasktracker 节点之前被写入 mapred.local.dir

我知道HFDS 已优化 以写入大数据 block ,因此与常规文件系统相比,可最大限度地减少硬盘的寻道时间。

现在我很好奇 hadoop 是否也针对将中间 kev-value 对流式传输到本地文件系统进行了优化?

我问这个是因为我的应用程序只有很少的输入数据,但是有大量的中间数据和中等大小的输出数据。 hadoop 在我的案例中是有益的还是我应该考虑一个不同的框架?(请注意,我的软件与 WordCount 密切相关,但我发出所有子字符串而不是所有单词)

非常感谢您的帮助!

EDIT: I reprased the question somewhat since at first glance I give the impression that intermediate kv pairs were sent to HDFS, they are sent to the local filesystem of the tasktracker node!

最佳答案

Is HDFS optimized for intermediate data?

就像@Tariq 提到的,HDFS 不用于中间数据(尽管有些人有 successfully explored this idea )。

那么,让我重新表述一下您的问题:

Is Hadoop optimized for intermediate data?

是的,有一些优化(例如,参见 MAPREDUCE-3289 JIRA)。

即使进行了这些优化,shuffle-heavy 作业也会在此阶段遇到瓶颈。调整配置参数(如 mapreduce.reduce.shuffle.input.buffer.percent)可以在一定程度上帮助缓解这个问题。使用组合器(如@Tariq 所建议的那样)也是一个好主意。

Is hadoop in my case beneficial or should I consider a different framework?

是的,Hadoop 对您的情况仍然有用(假设您不是在单节点模式下运行)。您可以更好地编写自己的针对您的特定用例优化的代码,但这样做的工作量太大(您必须自己处理故障等)以证明这样做(在大多数情况下)是合理的。

关于java - 中间键值对流是否在 hadoop 中优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com