Java Spark流式处理多个流式处理作业
我有一个应用程序,其中多个用户可以指定Spark工作流,然后将其发送到驱动程序并在集群上执行 现在应扩展工作流以支持流式数据源。可能的工作流程包括:Java Spark流式处理多个流式处理作业,java,apache-spark,parallel-processing,stream,streaming,Java,Apache Spark,Parallel Processing,Stream,Streaming,我有一个应用程序,其中多个用户可以指定Spark工作流,然后将其发送到驱动程序并在集群上执行 现在应扩展工作流以支持流式数据源。可能的工作流程包括: 使用特定的标签流推特 变换每个tweet 在窗口框架上进行分析和可视化 如果一次只启动一个流,但给出“此JVM中只能启动一个StreamingContext”错误,则此操作有效 我尝试了不同的已知方法,但没有一种对我有效(“spark.driver.allowMultipleContexts=true”,增加“spark.streaming.con
提前谢谢 我假设您是在现有应用程序中以编程方式启动spark流媒体作业,因此JVM出现了错误。Spark不是专门为在不同应用范围内运行而设计的,即使在独立模式下也是可行的。如果您想在集群上以编程方式启动spark streaming作业,则需要使用Launcher,如下所示:
import org.apache.spark.launcher.SparkLauncher
object Launcher extends App {
val spark = new SparkLauncher()
.setSparkHome("...")
.setAppResource("..path to your jar...")
.setMainClass("..your app...")
.setMaster("yarn")
.launch();
spark.waitFor();
}
这里有一篇博客文章,其中有一些例子:
API文档如下: