它说,在Apache Spark文档中,“
在每个Spark应用程序中,如果多个“作业”(Spark操作)是由不同的线程提交的,则它们可以同时运行
”。有人可以为以下示例代码解释如何实现此并发吗?
SparkConf conf = new SparkConf().setAppName("Simple_App");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> file1 = sc.textFile("/path/to/test_doc1");
JavaRDD<String> file2 = sc.textFile("/path/to/test_doc2");
System.out.println(file1.count());
System.out.println(file2.count());
这两个作业是独立的,必须同时运行。
谢谢。
尝试这样的事情:
final JavaSparkContext sc = new JavaSparkContext("local[2]","Simple_App");
ExecutorService executorService = Executors.newFixedThreadPool(2);
// Start thread 1
Future<Long> future1 = executorService.submit(new Callable<Long>() {
@Override
public Long call() throws Exception {
JavaRDD<String> file1 = sc.textFile("/path/to/test_doc1");
return file1.count();
}
});
// Start thread 2
Future<Long> future2 = executorService.submit(new Callable<Long>() {
@Override
public Long call() throws Exception {
JavaRDD<String> file2 = sc.textFile("/path/to/test_doc2");
return file2.count();
}
});
// Wait thread 1
System.out.println("File1:"+future1.get());
// Wait thread 2
System.out.println("File2:"+future2.get());
一个spark有一个oracle查询。所以我必须并行运行多个作业,以便所有查询都将同时激发。 如何并行运行多个作业?
我有一个系统,其中REST API(Flask)使用spark-sumbit向正在运行的PySpark发送作业。 出于各种原因,我需要spark同时运行所有任务(即我需要设置执行器的数量=运行时的任务数量)。 这可能通过一项工作来实现吗?
默认情况下,所有设置都是。如何启用同时运行的多个作业?
我使用了以下格式的输入数据: 我已经使用以下代码段使用多线程将RDD保存为文本文件: 在本例中,我遇到了以下例外情况
-第一种方法 所有的查询都可以存储在一个配置单元表中,我可以编写一个Spark驱动程序来一次读取所有查询,并使用java多线程并行运行所有查询(与HiveContext一起 优点:易于维护 缺点:可能会占用所有资源,并且对每个查询进行性能优化可能会很困难。 使用oozie spark操作单独运行每个查询 优点:可以在查询级别进行优化 缺点:难以维护。 我找不到任何关于第一种方法的文档,说明Spar
我试图运行火花作业,基本上加载数据在卡桑德拉表。但它也产生了以下错误。