Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使Spark在完成后自动重新启动作业?_Java_Apache Spark_Lambda Architecture - Fatal编程技术网

Java 如何使Spark在完成后自动重新启动作业?

Java 如何使Spark在完成后自动重新启动作业?,java,apache-spark,lambda-architecture,Java,Apache Spark,Lambda Architecture,我正在构建一个lambda体系结构,需要Spark作为它的批处理部分,定期或在完成后立即重新启动,或者由Spark流作业调用重新启动。我看过一些东西,可能不理解Spark上下文,但不确定是否可以将Spark上下文放入循环中。有人能提供一些快速的指导吗?另一个快速的问题是,考虑到将有数据不断添加到HBase中,Spark将从中读取数据,缓存有什么用处吗?提前谢谢你的帮助 编辑:如果我实现SparkListener并在作业结束时呼叫对方付费,是否会重新进行所有计算?当您调用等待终止()Streami

我正在构建一个lambda体系结构,需要Spark作为它的批处理部分,定期或在完成后立即重新启动,或者由Spark流作业调用重新启动。我看过一些东西,可能不理解Spark上下文,但不确定是否可以将Spark上下文放入循环中。有人能提供一些快速的指导吗?另一个快速的问题是,考虑到将有数据不断添加到HBase中,Spark将从中读取数据,缓存有什么用处吗?提前谢谢你的帮助


编辑:如果我实现SparkListener并在作业结束时呼叫对方付费,是否会重新进行所有计算?

当您调用
等待终止()
StreamingContext时,将不会退出并继续运行。您需要从另一个线程调用
stop()
,以停止流式处理上下文

 JavaDStream<T> jsonStrem = streamingContext.receiverStream(receiver);              
 streamingContext.start();
 streamingContext.awaitTermination();
JavaDStream jsonStrem=streamingContext.receiverStream(接收方);
streamingContext.start();
streamingContext.waitingTermination();

接收器
将按照批处理间隔调用

似乎比我想象的要容易。我怀疑while循环在RDD函数之外不起作用,因为Spark执行起来很慢。我错了。这个例子暗示了这是可能的:

感谢您的输入。有趣的是,我实际上在尝试让Batch这样做,比如在SparkContext中,而不是在流媒体中。我的Spark Streaming工作负责lambda体系结构的速度层,我有一个Spark工作负责批处理层。我希望这能让事情更清楚。也许我误解了lambda架构的用途。