出现这样子的问题之后,我们将setMaster的值进行了一点点的修改 local[2]
为什么?
之前在进行setMaster的值时,当我们为local的时候,其实表示为local[1]
那么就是告诉我们的程序,只执行一个处理线程。但是在现在通过socket的spark streaming来处理的话
一个进程将不够用?为什么?
因为一个进程需要处理
还需要一个去获取数据
为什么这两处进程不能衔接在一起?
从进程处理效率来说应该分开,更何况两个进程处理的内容是不一样的。
比如我们每隔1s拿过来的数据,但是在处理的时候需要2S。
综合以上的考虑,需要将local至少为2
如果是2个数据源,那么至少为4
//设置日志级别
Logger.getLogger(“.apache.spark”).setLevel(Level.ERROR)
//saprk streaming 的入口api
//第二个参数,是表示让spark多久去拿一次数据,也可以称之为处理时间间隔
//以下参数是设置处理时间间隔(处理时间)为2S
val conf = new SparkConf().setMaster(“local[2 ]”).setAppName(“test”)
//ssc
val ssc: StreamingContext = new StreamingContext(conf,Seconds(10))
更多推荐
数据,SparkStreaming
发布评论