Apache spark 要传递给Kafkautils.createStream方法的输入参数和组
我正在尝试执行下面的代码,它从卡夫卡制作人那里提取消息并计算字数 此代码来自GithubApache spark 要传递给Kafkautils.createStream方法的输入参数和组,apache-spark,apache-kafka,spark-streaming,Apache Spark,Apache Kafka,Spark Streaming,我正在尝试执行下面的代码,它从卡夫卡制作人那里提取消息并计算字数 此代码来自Github 对象KafkaWordCount{ def main(参数:数组[字符串]){ 如果(参数长度(x,1L)) .reduceByKeyAndWindow(+u,-u,分(10),秒(2),2) wordCounts.print() ssc.start() ssc.终止协议() } } 我的问题是:我已经启动了卡夫卡动物园管理员和服务器(代理),还创建了一个名为“Mytopic1”的主题。 代码需要以下4个
对象KafkaWordCount{
def main(参数:数组[字符串]){
如果(参数长度<4){
System.err.println(“用法:KafkaWordCount”)
系统出口(1)
}
StreamingExamples.setStreamingLogLevels()
val数组(zkQuorum、组、主题、numThreads)=args
val sparkConf=new sparkConf().setAppName(“KafkaWordCount”)
val ssc=新的StreamingContext(sparkConf,秒(2))
ssc.检查点(“检查点”)
val-topicMap=topics.split(“,”).map((\uu,numThreads.toInt)).toMap
val lines=KafkaUtils.createStream(ssc、zkQuorum、group、topicMap).map(u._2)
val words=lines.flatMap(u.split(“”)
val wordCounts=words.map(x=>(x,1L))
.reduceByKeyAndWindow(+u,-u,分(10),秒(2),2)
wordCounts.print()
ssc.start()
ssc.终止协议()
}
}
我的问题是:我已经启动了卡夫卡动物园管理员和服务器(代理),还创建了一个名为“Mytopic1”的主题。
代码需要以下4个参数:zkQuorum、group、topics和numThreads。
我知道我可以将“Mytopic1”、“1”作为主题和numthreads的参数传递。但是对于zkQuorum和group,要传递给我的应用程序的值是什么?
是以逗号分隔的Zookeper URI列表,如zkQuorum
your.host.name:2181
是您要为您的消费者组使用的任意组名group
object KafkaWordCount {
def main(args: Array[String]) {
if (args.length < 4) {
System.err.println("Usage: KafkaWordCount <zkQuorum> <group> <topics> <numThreads>")
System.exit(1)
}
StreamingExamples.setStreamingLogLevels()
val Array(zkQuorum, group, topics, numThreads) = args
val sparkConf = new SparkConf().setAppName("KafkaWordCount")
val ssc = new StreamingContext(sparkConf, Seconds(2))
ssc.checkpoint("checkpoint")
val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap
val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicMap).map(_._2)
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x, 1L))
.reduceByKeyAndWindow(_ + _, _ - _, Minutes(10), Seconds(2), 2)
wordCounts.print()
ssc.start()
ssc.awaitTermination()
}
}