我有一个更理论化的问题,但它涉及将我过去在没有 Hadoop 的情况下解决的任务转换为 map-reduce 平台。
例如,我们有一个视频文件,从技术上讲它是一系列帧,我们需要检测每个帧中某些圆形对象的特征:(x,y,大小,失真)。检测算法将两件事作为输入:帧本身和前一帧的识别结果。
这里的问题是,如何将此类问题转换为 map-reduce 范式,以便:
- 将使用 reducer 的好处,在我的情况下,我可以想象只有 mapper
- 算法将能够处理序列,而不仅仅是单独处理每一帧。
谢谢
最佳答案
- 如果你想保留每一帧的数据,你不需要 减少步骤。 Reduce 步骤在 Hadoop 中是可选的。如果你想 运行一些统计数据(例如,对所有帧的数据进行平均),a 可以使用 reducer 。
- MapReduce 不适合顺序处理,例如
这个。
- 如果您有多个视频要处理,您可以让每个映射器 处理一个视频。这将为您提供数据并行性。
- 您可以查看相关的 Hadoop 技术,例如 Apache Hama或 HaLoop专为并行顺序处理而设计。
关于hadoop - 如何映射减少顺序数据,其中 Kn+1->Vn+1 = f(Kn->Vn)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407596/