连续 INFO JobScheduler:59 - 在我的 Spark 独立集群中添加了 *** ms 时间的作业

Cha*_*ala 3 apache-spark spark-streaming apache-spark-standalone

我们正在使用具有 8 个核心和 32GB RAM 的 Spark 独立集群,以及具有相同配置的 3 节点集群。

有时流批处理会在不到 1 秒的时间内完成。有时需要超过 10 秒,此时控制台中会出现下面的日志。

2016-03-29 11:35:25,044  INFO TaskSchedulerImpl:59 - Removed TaskSet 18.0, whose tasks have all completed, from pool 
2016-03-29 11:35:25,044  INFO DAGScheduler:59 - Job 18 finished: foreachRDD at EventProcessor.java:87, took 1.128755 s
2016-03-29 11:35:31,471  INFO JobScheduler:59 - Added jobs for time 1459231530000 ms
2016-03-29 11:35:35,004  INFO JobScheduler:59 - Added jobs for time 1459231535000 ms
2016-03-29 11:35:40,004  INFO JobScheduler:59 - Added jobs for time 1459231540000 ms
2016-03-29 11:35:45,136  INFO JobScheduler:59 - Added jobs for time 1459231545000 ms
2016-03-29 11:35:50,011  INFO JobScheduler:59 - Added jobs for time 1459231550000 ms
2016-03-29 11:35:55,004  INFO JobScheduler:59 - Added jobs for time 1459231555000 ms
2016-03-29 11:36:00,014  INFO JobScheduler:59 - Added jobs for time 1459231560000 ms
2016-03-29 11:36:05,003  INFO JobScheduler:59 - Added jobs for time 1459231565000 ms
2016-03-29 11:36:10,087  INFO JobScheduler:59 - Added jobs for time 1459231570000 ms
2016-03-29 11:36:15,004  INFO JobScheduler:59 - Added jobs for time 1459231575000 ms
2016-03-29 11:36:20,004  INFO JobScheduler:59 - Added jobs for time 1459231580000 ms
2016-03-29 11:36:25,139  INFO JobScheduler:59 - Added jobs for time 1459231585000 ms
Run Code Online (Sandbox Code Playgroud)

请您帮忙,如何解决这个问题。

小智 5

将spark-submit master从本地更改为本地[2]

\n\n
spark-submit --master local[2] --class YOURPROGRAM YOUR.jar\n
Run Code Online (Sandbox Code Playgroud)\n\n

或设置

\n\n
new SparkConf().setAppName("SparkStreamingExample").setMaster("local[2]")\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果将数字更改为 2 后仍然遇到同样的问题,也许您应该将其更改为更大的数字。

\n\n

参考:\n http://spark.apache.org/docs/latest/streaming-programming-guide.html

\n\n

在本地运行 Spark Streaming 程序时,请勿使用 \xe2\x80\x9clocal\xe2\x80\x9d 或 \xe2\x80\x9clocal[1]\xe2\x80\x9d 作为主 URL。其中任何一个都意味着只有一个线程将用于本地运行任务。如果您使用基于接收器(例如套接字、Kafka、Flume 等)的输入 DStream,则将使用单个线程来运行接收器,而不会留下任何线程来处理接收到的数据。因此,在本地运行时,始终使用 \xe2\x80\x9clocal[n]\xe2\x80\x9d 作为主 URL,其中 n > 要运行的接收器数量(有关如何设置主服务器的信息,请参阅 Spark 属性) 。

\n\n

将逻辑扩展到集群上运行,分配给 Spark Streaming 应用程序的核心数量必须大于接收器的数量。否则,系统将接收数据,但无法处理它们。

\n\n

感谢 bit1129:http://bit1129.iteye.com/blog/2174751

\n