spark streaming不同模式配置
Posted gentlemanhai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark streaming不同模式配置相关的知识,希望对你有一定的参考价值。
背景
1)试试本地模式的spark streaming
2)试试yarn模式的spark streaming
1、本地模式的spark streaming
代码如下:
package com.hxh
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
object newtest {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf()
sparkConf.setMaster("local[2]").setAppName("NetworkWordCount")
val ssc = new StreamingContext(sparkConf, Seconds(4))
val lines = ssc.socketTextStream("127.0.0.1", 9999)
val results = lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
results.print()
ssc.start()
ssc.awaitTermination()
}
}
2、yarn模式的spark streaming
代码如下:
package com.hxh
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
object newtest {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf()
sparkConf.setMaster("yarn").setAppName("NetworkWordCount")
val ssc = new StreamingContext(sparkConf, Seconds(4))
val lines = ssc.socketTextStream("rsync.hxh.test1", 9999)
val results = lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
results.print()
ssc.start()
ssc.awaitTermination()
}
}
3、对比
本地模式的streaming和yarn模式的streaming的区别是什么呢?
1)local模式的spark streaming启动后是streaming程序是运行在本地,即使你使用的--deploy-mode cluster参数,程序不会比提交到yarn
2)yarn模式的spark streaming启动后streaming程序是运行集群中的任意一台机器,这个必须在Scala代码里面指定sparkConf.setMaster("yarn"),才是on yarn的模式
4、sparkConf.setMaster介绍
为了初始化spark streaming程序,一个StreamingContext对象必须被创建,它是Spark Streaming所有流操作的主要入口。一个StreamingContext对象可以用SparkConf对象创建。可以使用SparkConf对象创建JavaStreamingContext对象
SparkConf conf = new SparkConf().setAppName(appName).setMaster(master); JavaStreamingContext jsc = new JavaStreamingContext(conf, Durations.seconds(seconds));
1)appName:是应用程序在集群UI上显示的名称
2)master:是spark,mesos,yarn或者是本地运行的特殊字符串"local[*]"
实际上单在集群上运行时,不想在程序中硬编码master,而是希望使用spark-submit启动应用程序时,得到master的值。但是对于本地测试和单元测试,可以传递"local[*]"来运行spark streaming程序
以上是关于spark streaming不同模式配置的主要内容,如果未能解决你的问题,请参考以下文章
Spark Streaming:使用带有列修剪的 MicroBatchReader 的模式不匹配
面试题:Flink反压机制及与Spark Streaming的区别
面试题:Flink反压机制及与Spark Streaming的区别