我有.exe文件(我没有源文件,所以我将无法编辑程序)作为文件的参数路径进行处理,最后给出结果。例如,在控制台中,我运行以下程序:program.exe -file file_to_process [other_parametrs]
。我还有jar可执行文件,它带有两个参数file_to_process
和第二个文件[others_parameters]
。在这两种情况下,我想将输入文件分成最小的部分并并行运行程序。有没有办法用Apache Spark Java框架高效地完成它。我是并行计算的新手,我读到了关于RDD和管道操作符但我不知道它是否会好我的情况因为我有文件的路径。
我将非常感谢一些帮助或提示。
答案 0 :(得分:1)
我认为一般的答案是" no"。 Spark是一个框架,通常它管理非常具体的集群配置机制,改组自己的数据,读取大输入(基于HDFS),监视任务完成和重试以及执行有效计算。它不适合你有一个你可以触摸的程序并且需要来自本地文件系统的文件的情况。
我猜你可以将你的输入放在HDFS上,然后,因为Spark接受任意java / Scala代码,你可以使用你所拥有的任何语言设施转储到本地文件,启动一个进程(即this),然后构建一些复杂的逻辑来监视完成(可能基于输出的内容)。 mapPartitions()
Spark方法最适合这种方法。
那就是说,我不推荐它。它将是丑陋的,复杂的,要求你弄乱节点和类似的东西的权限,并不会充分利用Spark的优势。
Spark非常适合您的问题,特别是如果您的文件的每一行都可以独立处理。我想看看是否有办法获得程序的代码,一个执行相同操作的库,或者算法是否足以重新实现。
可能不是你想要的答案: - (
答案 1 :(得分:1)