我有一个需要递归应用的过滤算法,我不确定 MapReduce 是否适合这项工作。如果没有放弃太多,我可以说每个被过滤的对象都以一个集合为特征,如果是有序列表或队列。
- 数据并不大,当我从 SQL 导出到 CSV 时只有大约 250MB。
- 映射步骤很简单:列表的头部包含一个可以将列表分类为属于N个映射节点之一的对象。每个节点的过滤算法对分配给该节点的列表集合起作用,并且在过滤结束时,列表保持与过滤之前相同,或者列表的头部被删除。
- reduce 函数也很简单:所有映射作业的列表都放在一起,可能必须写回磁盘。
- 当所有N个节点都返回了它们的输出时,映射步骤将使用这组新数据重复。
注意:N可以多达 2000 个节点。很简单,但在满足算法的终止条件之前可能需要多达 1000 次递归。
我的问题是这份工作是否适合 Hadoop?如果没有,我有什么选择?