Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 要传递给Kafkautils.createStream方法的输入参数和组_Apache Spark_Apache Kafka_Spark Streaming - Fatal编程技术网

Apache spark 要传递给Kafkautils.createStream方法的输入参数和组

Apache 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个

我正在尝试执行下面的代码,它从卡夫卡制作人那里提取消息并计算字数

此代码来自Github

对象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,要传递给我的应用程序的值是什么?

  • zkQuorum
    是以逗号分隔的Zookeper URI列表,如
    your.host.name:2181
  • group
    是您要为您的消费者组使用的任意组名

如何创建消费群体?我使用下面的命令在windows命令提示符下启动了使用者。那么,我将以什么样的消费者群体作为论据呢?命令:“kafka-console-consumer.bat——引导服务器localhost:9092——主题Mytopic1——从一开始”仅供参考,我能够通过命令提示符从主题“Mytopic1”发送消息,并且能够在命令提示符下由使用者接收消息。但我的要求是,正如我所说的,我希望我的Spark应用程序通过传递所需的参数来读取来自Kafka主题的消息。我被困在这里了。在这方面你能帮忙吗。
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()
  }
}