hadoop - 集群中多个文件的并行处理

标签 hadoop mapreduce parallel-processing

在我工作的公司,我们每天要处理几千个文件,这需要几个小时。这些操作基本上是 CPU 密集型的,比如将 PDF 转换为高分辨率图像,然后创建许多不同尺寸的此类图像。

这些任务中的每一项都占用大量 CPU,因此我们不能简单地在同一台机器上启动多个实例,因为没有任何处理能力可用于所有任务。因此,完成所有事情需要几个小时。

在我看来,最明显的做法是对文件集进行分区,并让更多机器同时处理它们(5、10、15 台机器,我还不知道需要多少台机器) .

我不想重新发明轮子并为任务创建一个管理器(我也不想麻烦),但我不确定应该使用哪个工具。

虽然我们没有大数据,但我已经开始研究 Hadoop(我们在 Amazon 运行),它处理节点的能力似乎很有趣。但是,我不知道使用它是否有意义。我也在看 Hazelcast,但我对它或概念完全没有经验。

完成这项任务的好方法是什么?

最佳答案

Hadoop 被广泛用于 variety数据处理问题,其中一些也与图像处理有关。 OP中提到的问题也可以使用Hadoop轻松解决。请注意,在某些要处理的数据较小的情况下,使用 Hadoop 会产生开销。

如果您是 Hadoop 的新手,我会提出一些建议

  • 购买Hadoop : The Definitive Guide书。
  • 通过 MapReduce resources .
  • 开始学习教程(12)并在单个节点和集群上设置 Hadoop。亚马逊就不用了,能留出1-2台机器学习。
  • 运行 sample programs并了解它们的工作原理。
  • 开始将问题区域迁移到 Hadoop。

Hadoop 相对于其他软件的优势在于围绕 Hadoop 的生态系统。截至目前ecosystem围绕 Hadoop 是巨大的,而且还在不断增长,我不确定 Hazelcast。

关于hadoop - 集群中多个文件的并行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797752/

相关文章:

java - 认知复杂性及其对代码的影响

haskell - 会使用 seq 代替 pseq 吗?

hadoop - 在 HIVE QL 的表中添加一列

hadoop - 如何有效减少映射器的输入长度

hadoop - 运行hadoop example,遇到 ".staging/job_1541144755485_0002/job.splitmetainfo does not exist",怎么办?

Hadoop:连接到 ResourceManager 失败

java - 在 RIAK 上获取 MapReduce 结果(使用 Java 客户端)

java - 在 MapReduce 中使用 Custom Partitioner 时清空 reduce 输出

performance - MATLAB 速度优化

function - MATLAB 上的并行编程可同时执行 3 个不同的函数