我有500个目录,每个目录有1000个文件(每个大约3-4k行)。我想在每个文件上运行相同的clojure程序(已经写好了)。我有四台八核服务器。在这些核心中分配过程的好方法是什么?cascalog (hadoop + clojure)?
基本上,程序读取一个文件,使用第三方Java进行计算,并将结果插入DB中
注意: 1.能够使用第三方库/jar是必需的。2.没有任何查询
发布于 2015-01-02 21:23:34
因为按照我的理解,在整个过程中没有“减少”阶段,所以在每台服务器上放置125个目录,然后花剩下的时间让这个程序更快地处理它们是有意义的。当然,到了饱和DB的程度。
大多数可用的“大数据”工具(Hadoop,Storm)都集中在需要非常强大的映射和减少操作的过程上,每个过程可能有多个阶段。你真正需要的是一种很好的方法来跟踪哪些工作通过了,哪些没有完成。在预测开发时间方面,我和任何人一样糟糕(比很多人都差),不过在这种情况下,我会说,在地图上重写流程--减少--比添加一个监视过程来跟踪哪些工作完成了哪些工作失败的时间更长,这样你就可以在稍后重新运行失败的工作(最好是自动的)。
发布于 2015-01-04 03:59:25
Onyx是Hadoop/Storm最近的纯Clojure替代方案。只要您熟悉Clojure,使用Onyx就非常简单。您应该尝试一下这种数据驱动的方法:
https://stackoverflow.com/questions/27741873
复制相似问题