我想问一下setMaster("local[2]")
和Map("test1"->5)
在以下代码中到底是什么意思
val sparkConf = new SparkConf().setAppName("KafkaWordCount").setMaster("local[2]")
val lines = KafkaUtils.createStream(ssc, "localhost:2181", "spark-streaming-consumer-group", Map("test1" -> 5))
据我所知setMaster("local[2]")
表示会有两个火花线。是两个主节点还是工作节点? Map("test1" -> 5))
表示主题具有的分区数。此数字是否等于local[]
中提到的数字?或者如果我错了,有人可以更好地解释它们吗?
答案 0 :(得分:0)
通过将local指定为主节点,您只有一个节点。它既是主人(驾驶员)又是工人(执行者)
关于地图,文档说
要使用的(topic_name-> numPartitions)的映射。每个分区都在其自己的线程中使用
理想情况下,是的,拥有尽可能多的使用者,就像Kafka具有最大并行度的分区一样,但是如果您使用的分区少,它将以循环方式使用数据
答案 1 :(得分:0)
Local[2]
意味着您将有2个线程作为工作线程。通常,local [k]表示:使用K个工作线程在本地运行Spark(理想情况下,将其设置为计算机上的内核数)。始终牢记,在Spark中,并行性是一个Worker级别。 Map("test1" -> 5)
的意思是[per-topic number of Kafka partitions to consume]。本质上,这就是说主题"test1"
具有5个要使用的分区。