这个问题在这里已经有答案了:
如何连续地向Kafka提供嗅探到的数据包(4个答案)
四年前关门了。
我正在尝试连续地向kafka代理/消费者发送数据(使用tshark嗅探的数据包)。
以下是我遵循的步骤:
1启动zookeeper:
kafka/bin/zookeeper-server-start.sh ../kafka//config/zookeeper.properties
2已启动kafka服务器:
kafka/bin/kafka-server-start.sh ../kafka/config/server.properties
三。Kafka消费者:
kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic \
'my-topic' --from-beginning
4编写了以下python脚本以将嗅探到的数据发送给使用者:
from kafka import KafkaProducer
import subprocess
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('my-topic', subprocess.check_output(['tshark','-i','wlan0']))
但这是停留在procuder终端和输出:
Capturing on 'wlan0'
605
^C
任何东西都不会转移到消费者身上。
我知道我可以用 pyshark
要在python上实现tshark:
import pyshark
capture = pyshark.LiveCapture(interface='eth0')
capture.sniff(timeout=5)
capture1=capture[0]
print capture1
但我不知道如何连续地将捕获的数据包从生产者发送到消费者。有什么建议吗?
谢谢您!
1条答案
按热度按时间xpcnnkqh1#
检查以下链接。
http://zdatainc.com/2014/07/real-time-streaming-apache-storm-apache-kafka/
在这里实现kafka生产者,定义了用于测试集群的kafka生产者代码的主要部分。在main类中,我们设置数据管道和线程:
值得注意的是,数据会被随机移动到每个螺栓,直到连接时除外,因为非常重要的一点是,相同的tweet会被赋予连接螺栓的相同示例。