Apache kafka 无法将kafka用于python
python:2.6.6 卡夫卡python:1.4.3 我曾经运行过卡夫卡制作人,但它总是提示我这个错误:Apache kafka 无法将kafka用于python,apache-kafka,kafka-producer-api,kafka-python,Apache Kafka,Kafka Producer Api,Kafka Python,python:2.6.6 卡夫卡python:1.4.3 我曾经运行过卡夫卡制作人,但它总是提示我这个错误: from kafka import KafkaProducer from kafka import KafkaConsumer from kafka.errors import KafkaError import json class Kafka_producer(): def __init__(self, kafkahost,kafkaport, kafkatopic):
from kafka import KafkaProducer
from kafka import KafkaConsumer
from kafka.errors import KafkaError
import json
class Kafka_producer():
def __init__(self, kafkahost,kafkaport, kafkatopic):
self.kafkatopic = kafkatopic
service_host = kafkahost+":"+kafkaport
self.producer = KafkaProducer(bootstrap_servers=service_host)
def sendjsondata(self, params):
try:
# parmas_message = json.dumps(params)
producer = self.producer
futur = producer.send(self.kafkatopic, params.encode('utf-8'))
res = futur.get(timeout=60)
producer.flush()
producer.close()
except KafkaError as e:
print e
if __name__ == '__main__':
# test = {
# "test":"testtets"
# }
# Kafka_producer("http://10.25.245.192","9092","nori-log").sendjsondata(test)
producer = KafkaProducer(bootstrap_servers='10.25.245.192:9092')
for _ in range(100):
producer.send('nori-log', {"test":"test_content"})
回溯(最近一次呼叫最后一次):
文件“KafkaOperation.py”,第11行,在
从卡夫卡进口卡夫卡制作人
文件“/usr/lib/python2.6/site packages/kafka/init.py”,第21行,在
来自卡夫卡消费品进口卡夫卡消费品
文件“/usr/lib/python2.6/site packages/kafka/consumer/init.py”,
第5行,在
从kafka.consumer.group导入KafkaConsumer
文件“/usr/lib/python2.6/site packages/kafka/consumer/group.py”,第行
13,在
从kafka.consumer.fetcher导入fetcher
文件“/usr/lib/python2.6/site packages/kafka/consumer/fetcher.py”,
第19行,在
从kafka.record导入MemoryRecords
文件“/usr/lib/python2.6/site packages/kafka/record/init.py”,第行
1,在
从kafka.record.memory\u记录导入MemoryRecords
文件
“/usr/lib/python2.6/site packages/kafka/record/memory_records.py”,
第27行,在
从kafka.record.default\u记录导入DefaultRecordBatch,
DefaultRecordBatchBuilder
文件
“/usr/lib/python2.6/site packages/kafka/record/default_records.py”,
第338行,输入
类DefaultRecordBatchBuilder(DefaultRecordBase,
ABCRecordBatchBuilder):
文件
“/usr/lib/python2.6/site packages/kafka/record/default_records.py”,
第378行,在DefaultRecordBatchBuilder中
byte_like=(bytes,bytearray,memoryview)
名称错误:未定义名称“memoryview”
这些代码:
from kafka import KafkaProducer
from kafka import KafkaConsumer
from kafka.errors import KafkaError
import json
class Kafka_producer():
def __init__(self, kafkahost,kafkaport, kafkatopic):
self.kafkatopic = kafkatopic
service_host = kafkahost+":"+kafkaport
self.producer = KafkaProducer(bootstrap_servers=service_host)
def sendjsondata(self, params):
try:
# parmas_message = json.dumps(params)
producer = self.producer
futur = producer.send(self.kafkatopic, params.encode('utf-8'))
res = futur.get(timeout=60)
producer.flush()
producer.close()
except KafkaError as e:
print e
if __name__ == '__main__':
# test = {
# "test":"testtets"
# }
# Kafka_producer("http://10.25.245.192","9092","nori-log").sendjsondata(test)
producer = KafkaProducer(bootstrap_servers='10.25.245.192:9092')
for _ in range(100):
producer.send('nori-log', {"test":"test_content"})
我将多伦多版本换成了2.2.1该类型在Python 2.7中是新的。Python2.6.6就在这一点上,并且。您需要升级Python安装。是的,我已经检查过了,您应该将Python版本至少更改为2.7,这样就可以正常工作了。