1

我正在使用火花流并将处理后的输出保存在 data.csv 文件中

val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
JavaStreamingContext jssc = new JavaStreamingContext(conf, new Duration(1000))
JavaReceiverInputDStream<String> lines = jssc.socketTextStream("localhost", 9999);

同时,我想读取 NetworkWordCount data.csv 的输出以及另一个新文件并同时再次处理它

我的问题是

是否可以同时运行两个 spark 应用程序?是否可以通过代码本身提交spark应用程序

我正在使用 mac,现在我使用以下命令从 spark 文件夹提交 spark 应用程序

bin/spark-submit --class "com.abc.test.SparkStreamingTest" --master spark://xyz:7077 --executor-memory 20G --total-executor-cores 100 ../workspace/Test/target/Test-0.0.1-SNAPSHOT-jar-with-dependencies.jar 1000

或者只是没有 spark:ip:port 和执行器内存,总执行器核心

bin/spark-submit --class "com.abc.test.SparkStreamingTest" --master local[4] ../workspace/Test/target/Test-0.0.1-SNAPSHOT-jar-with-dependencies.jar

以及读取文本文件进行批处理的其他应用程序如下

bin/spark-submit --class "com.abc.test.BatchTest" --master local[4] ../workspace/Batch/target/BatchTesting-0.0.1-SNAPSHOT-jar-with-dependencies.jar

当我分别运行应用程序 SparkStreamingTest 和 BatchTest 时都可以正常工作,但是当我尝试同时运行两者时,出现以下错误

目前我正在使用火花独立模式

WARN AbstractLifeCycle: FAILED SelectChannelConnector@0.0.0.0:4040: java.net.BindException: Address already in use
java.net.BindException: Address already in use

任何帮助都非常感谢..我完全不在意

4

1 回答 1

3

来自http://spark.apache.org/docs/1.1.0/monitoring.html

如果多个 SparkContexts 在同一主机上运行,​​它们将绑定到以 4040 开头的连续端口(4041、4042 等)。

您的应用程序应该能够运行。这只是一个警告,告诉你端口冲突。这是因为您同时运行两个 Spark 应用程序。但不要担心。Spark 将尝试 4041、4042 直到找到可用端口。因此,在您的情况下,您会发现两个 Web UI:ip:4040、ip:4041 用于这两个应用程序。

于 2014-10-17T08:22:38.823 回答