Apache spark 火花流+;卡夫卡整合
我尝试使用pyspark在Jupyter笔记本中集成spark和卡夫卡。这是我的工作环境 Spark版本:Spark 2.2.1 卡夫卡版本:卡夫卡2.11-0.8.2.2 Spark streaming kafka jar:Spark-streaming-kafka-0-8-assembly_2.11-2.2.1.jar 我在Spark-defaults.conf文件中添加了一个Spark流kafka程序集jar文件 当我开始pyspark流媒体的streamingContext时,此错误显示为无法从MANIFEST.MF读取kafka版本。 这是我的密码Apache spark 火花流+;卡夫卡整合,apache-spark,pyspark,apache-kafka,spark-streaming,spark-streaming-kafka,Apache Spark,Pyspark,Apache Kafka,Spark Streaming,Spark Streaming Kafka,我尝试使用pyspark在Jupyter笔记本中集成spark和卡夫卡。这是我的工作环境 Spark版本:Spark 2.2.1 卡夫卡版本:卡夫卡2.11-0.8.2.2 Spark streaming kafka jar:Spark-streaming-kafka-0-8-assembly_2.11-2.2.1.jar 我在Spark-defaults.conf文件中添加了一个Spark流kafka程序集jar文件 当我开始pyspark流媒体的streamingContext时,此错误显示
from pyspark import SparkContext, SparkConf
from pyspark import SparkContext, SparkConf
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
import sys
import os
from kafka import KafkaProducer
#Receive data handler
def handler(message):
records = message.collect()
for record in records:
print(record)
#producer.send('receive', str(res))
#producer.flush()
producer = KafkaProducer(bootstrap_servers='slave02:9092')
sc = SparkContext(appName="SparkwithKafka")
ssc = StreamingContext(sc, 1)
#Create Kafka streaming with argv
zkQuorum = 'slave02:2181'
topic = 'send'
kvs = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer", {topic:1})
kvs.foreachRDD(handler)
ssc.start()
很抱歉我在Scala上发帖 Scala 2.11和Kafka 0.10的Spark 2.2.1可以完成所有工作,尽管它们被标记为实验性的 如果使用上述库,创建流的正确方法是使用
val kStrream = KafkaUtils.createDirectStream(
ssc, PreferConsistent,
Subscribe[String, String](Array("weblogs-text"), kafkaParams, fromOffsets))
请注意依赖项,例如kafka具有特定于kafka客户端版本和spark版本的jar文件
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
org.apache.spark
spark-streaming-kafka-0-10_2.11
2.2.1
假如
很抱歉我在Scala中发布了帖子
Scala 2.11和Kafka 0.10的Spark 2.2.1可以完成所有工作,尽管它们被标记为实验性的
如果使用上述库,创建流的正确方法是使用
val kStrream = KafkaUtils.createDirectStream(
ssc, PreferConsistent,
Subscribe[String, String](Array("weblogs-text"), kafkaParams, fromOffsets))
请注意依赖项,例如kafka具有特定于kafka客户端版本和spark版本的jar文件
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
org.apache.spark
spark-streaming-kafka-0-10_2.11
2.2.1
假如
您提交代码的命令是什么?或者,您是如何将JAR加载到jupyter中的?编辑:糟糕,看起来不像python的api注意:KafkaUtils.createStream是读取kafka主题的旧方法。您应该使用@cricket_007 ssc.start()作为启动代码。我在Jupyter笔记本上测试。我将jar路由附加到spark-defaults.conf中,例如spark.jars spark-streaming-kafka-0-8-assembly_2.11-2.2.1。jar@Bameza但我知道spark与版本0.10.0不兼容。这就是我使用kafka 0.8.0 API的原因。我可以在Jupyter笔记本中使用kafka 0.10.0 API吗?我解决了这个问题。这是一个警告,我的应用程序不会因此而崩溃。它对我很有效。谢谢大家!您提交代码的命令是什么?或者,您是如何将JAR加载到jupyter中的?编辑:糟糕,看起来不像python的api注意:KafkaUtils.createStream是读取kafka主题的旧方法。您应该使用@cricket_007 ssc.start()作为启动代码。我在Jupyter笔记本上测试。我将jar路由附加到spark-defaults.conf中,例如spark.jars spark-streaming-kafka-0-8-assembly_2.11-2.2.1。jar@Bameza但我知道spark与版本0.10.0不兼容。这就是我使用kafka 0.8.0 API的原因。我可以在Jupyter笔记本中使用kafka 0.10.0 API吗?我解决了这个问题。这是一个警告,我的应用程序不会因此而崩溃。它对我很有效。谢谢大家!