简单地说,我们有一项工作或任务涉及读取具有十亿多条记录的巨大文件,解析这些文件并进行一些清理,然后将清理后的数据写到另一个文件中。我们有数百个此类工作正在不断创建,提交和运行。每个作业都处理自己的文件,因此我们不必担心并发问题。
为此,我们构建了自己的调度系统(MainFrame和Java的组合)。我们目前的吞吐量约为每小时4000万条记录。
为了更好地做到这一点(并提供更多的容错能力),我们正在评估IBM的LSF,以帮助我们进行此调度和创建作业。
你们中的任何人是否认为使用LSF可能会在此问题上过头?我可以考虑使用AKKA中的actor-model实现并围绕它编写我自己的Job Scheduler来实现相同目的。
有什么想法吗?
最佳答案
我的评论太长了,因此尽管没有真正回答您的问题(无论如何),但我还是将其作为答案。
在引入新技术和推出自己的解决方案之间需要权衡。您是否需要在不同文件或一个文件中的记录之间进行交叉引用?如果不是这样,并且您逐行处理文件,则有数百万种无需使用任何框架即可编写脚本的方法。引入Akka(或其他任何框架)可能会拖延一些基础设施需求,而这些需求可能比编写实际服务要昂贵得多。
TLDR:是的,您可以使用Akka来做到这一点(以及许多其他方法),但是有太多的未知因素来决定它是否是“最佳”解决方案(引用这句话是因为目前还没有“最佳”的定义) 。
关于hadoop - 我应该使用LSF还是实现自己的工作计划程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32336296/