我有一个dockerized Spark应用程序,用于简单的流式传输。侦听器生成随机数,并使用以下代码将其发送给Kafka:
producer = KafkaProducer(bootstrap_servers=kafka_brokers, api_version=(0, 10, 1))
while True:
data = //generate a json with a single number
producer.send(topic_name, str.encode(json.dumps(data)))
然后,我尝试使用这样的使用者读取此数据:
consumer = KafkaConsumer(topic_name, bootstrap_servers=['192.168.99.100:9092'])
for message in consumer:
record = json.loads(message.value)
list.append(record['field'])
当我运行代码时,它永远不会超过“消费者中的消息”部分。我在Kafka中进行了检查,所有消息都在那里,但是我无法通过Python访问它们。
编辑:我正在为kafka和zookeeper使用bitnami spark容器和this设置。
我只有两个单独的文件,一个用于生产者,一个用于消费者。我运行了生产者文件,该文件发送到Kafka,然后我火花提交了消费者文件,该文件应该只打印收到的号码的列表。为此,我只需要执行spark-submit --master spark:// spark:7077 Consumer.py