【发布时间】:2015-05-17 12:44:40
【问题描述】:
我有 .exe 文件(我没有源文件,所以我无法编辑程序)作为正在处理的文件的参数路径并最终给出结果。例如在控制台中我运行这个程序如下:program.exe -file file_to_process [other_parametrs]。我还有 jar 可执行文件,它带有两个参数 file_to_process 和第二个文件和 [others_parameters]。在这两种情况下,我都想将输入文件分成最小的部分并并行运行程序。有什么方法可以使用 Apache Spark Java 框架高效地做到这一点。我是并行计算的新手,我阅读了有关 RDD 和管道运算符的信息,但我不知道它是否适合我的情况,因为我有文件路径。
我将非常感谢您提供一些帮助或提示。
【问题讨论】:
-
恕我直言,除非您手头有集群,否则 Spark 可能会过分且缓慢。如果通过并行计算您的意思是使用单台机器的所有内核,我只会手动分区并启动多个进程。但总的来说,没有办法按原样回答您的问题。有太多“依赖”:输入的种类、如何分区、大小、集群可用性和大小、内存需求、算法种类等。
-
为了测试,我将使用本地机器,但将来我想使用 Amazon EC2 云和集群。在文件中,我有独立的数据部分,可以单独处理。问题是文件可能非常大,即使在具有多核的本地机器上,计算持续时间也太长。有没有办法通过为每个文件提供不同的路径来拆分文件并并行运行它。
-
将可执行作业分流到集群似乎对于像 Sun Grid Engine (SGE) 及其后代这样的排队系统来说是一项工作。亚马逊创建了CfnCluster 来管理他们云上的此类系统。
标签: java parallel-processing apache-spark