使用MapR Spark流的Apache kafka集群无法正常工作

时间:2016-08-16 16:52:24

标签: apache-kafka spark-streaming mapr

使用MapR Spark streaming(1.6.1)连接到Apache kafka群集时遇到问题。设置详情如下:

•使用Spark 1.6.1(3节点集群)的MapR集群

•Apache Kafka集群v0.8.1.1(5节点集群)

我们正在使用mapr v1.6.1-ampr-1605中的'spark-streaming-kafka'库。我们还尝试使用apache spark(不是mapr spark)在本地模式下运行,这非常有效。

以下是错误的堆栈跟踪:

Exception in thread "main" org.apache.kafka.common.config.ConfigException: No bootstrap urls given in bootstrap.servers
        at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:57)
        at org.apache.kafka.clients.consumer.KafkaConsumer.initializeConsumer(KafkaConsumer.java:606)
        at org.apache.kafka.clients.consumer.KafkaConsumer.partitionsFor(KafkaConsumer.java:1563)
        at org.apache.spark.streaming.kafka.v09.KafkaCluster$$anonfun$getPartitions$1$$anonfun$1.apply(KafkaCluster.scala:54)
        at org.apache.spark.streaming.kafka.v09.KafkaCluster$$anonfun$getPartitions$1$$anonfun$1.apply(KafkaCluster.scala:54)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.Set$Set1.foreach(Set.scala:74)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at org.apache.spark.streaming.kafka.v09.KafkaCluster$$anonfun$getPartitions$1.apply(KafkaCluster.scala:53)
        at org.apache.spark.streaming.kafka.v09.KafkaCluster$$anonfun$getPartitions$1.apply(KafkaCluster.scala:52)
        at org.apache.spark.streaming.kafka.v09.KafkaCluster.withConsumer(KafkaCluster.scala:164)
        at org.apache.spark.streaming.kafka.v09.KafkaCluster.getPartitions(KafkaCluster.scala:52)
        at org.apache.spark.streaming.kafka.v09.KafkaUtils$.getFromOffsets(KafkaUtils.scala:421)
        at org.apache.spark.streaming.kafka.v09.KafkaUtils$.createDirectStream(KafkaUtils.scala:292)
        at org.apache.spark.streaming.kafka.v09.KafkaUtils$.createDirectStream(KafkaUtils.scala:397)
        at org.apache.spark.streaming.kafka.v09.KafkaUtils.createDirectStream(KafkaUtils.scala)
        at com.cisco.it.log.KafkaDirectStreamin2.main(KafkaDirectStreamin2.java:111)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:742)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

PS:我们在创建连接时传递“metadata.broker.list”。 Spark流应用程序无法连接到ZK,也无法获取引导URL。这就是我的理解。或者可能是没有正确版本的map-r和kafka jar的问题。我们从Map-r方面拿了jar但仍然没有工作。

我们能够成功测试apache spark但无法在mapr上运行它。

任何有用的帮助。

1 个答案:

答案 0 :(得分:0)

在你的堆栈跟踪中有org.apache.spark.streaming.kafka.v09的引用,这可能意味着它是一个使用新的消费者API的实现,它随Kafka 0.9一起提供,并且不能与Kafka 0.8.1.1一起使用。您应该尝试使用MapR's spark-streaming-kafka_2.10中的一个库。