在 Scala/Hadoop 系统中充分利用多核进行并行处理的更好方法是什么?
假设我需要处理 1 亿份文档。文档不是很大,但处理它们是计算密集型的。如果我有一个 Hadoop 集群,其中有 100 台机器,每台机器有 10 个内核,我可以:
A) 向每台机器发送 1000 个文档,让 Hadoop 在 10 个核心(或尽可能多的可用核心)上启动映射
或者
B) 向每台机器发送 1000 个文档(仍然使用 Hadoop)并使用 Scala 的并行集合来充分利用多核。(我会将所有文档放在一个并行集合中,然后调用map
该集合)。换句话说,在集群级别使用 Hadoop 进行分发,并使用并行集合来管理对每台机器内核心的分发。