【问题标题】:Parallel processing of several files in a cluster并行处理集群中的多个文件
【发布时间】:2012-01-10 02:11:49
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: hadoop mapreduce parallel-processing


    【解决方案1】:

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

    如果您是 Hadoop 新手,建议您做几件事

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

    Hadoop 相对于其他软件的优势在于 Hadoop 周围的生态系统。到目前为止,围绕 Hadoop 的 ecosystem 非常庞大且不断增长,我不确定 Hazelcast。

    【讨论】:

    • 感谢伟大的链接,他们帮助很大。在我看来,实际上 Hadoop 可能对于我的简单作业分配和协调任务来说有点太多了,而 Hazelcast 看起来更简单。但在使用一种或另一种工具之前,我会做一些实际测试。
    • 只是好奇 Hazelcast 是否被广泛使用。 It appears to me that in fact Hadoop may be a little too much for the simple job distribution and coordenation task I have, and for that Hazelcast looks simpler. - 一旦设置了 Hadoop 集群,您就可以轻松地将其用于贵公司的其他资源密集型任务。
    【解决方案2】:

    您可以使用Hazelcast distributed queue.

    首先,您可以将文件(文件引用)作为任务放入分布式队列。 然后每个节点从队列中取出一个任务处理它并将结果放入另一个分布式队列/列表或将其写入数据库/存储。

    【讨论】:

    • 谢谢,Hazelcast 的整体解决方案看起来还不错,而且它还有其他几个我可以使用的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2011-10-16
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多