Я пишу программу на Python для подключения к Kafka и чтения / записи сообщений.
Ошибка источника при выполнении python3 provider.py
File "/opt/local/bgdatapp/anaconda3/lib/python3.7/site-packages/kafka/conn.py", line 255, in init
assert gssapi is not None, 'GSSAPI lib not available'
AssertionError: GSSAPI lib not available
Exception ignored in: <function BrokerConnection.del at 0x7f715f4b3378>
Traceback (most recent call last):
File "/opt/local/bgdatapp/anaconda3/lib/python3.7/site-packages/kafka/conn.py", line 696, in del
self._close_socket()
File "/opt/local/bgdatapp/anaconda3/lib/python3.7/site-packages/kafka/conn.py", line 691, in _close_socket
if self._sock:
AttributeError: 'BrokerConnection' object has no attribute '_sock'
INFO:kafka.producer.kafka:Kafka producer closed
ОС - Red Hat Enterprise Linux Server версии 6.10 (Сантьяго)
Python3 - 3.7.1 - Anaconda3 Python
Путь Python3 - / opt / local / bgdatapp / anaconda3 / bin / python
Керберос - 5
Кафка - Cloudera 13,1
Я могу получить доступ к своей кафке из оболочки, и я могу толкать и читать сообщения.
kafka-console-producer --broker-list host.domain.com:9092 --topic Topic1 --producer.config client.properties
cat client.properties security.protocol = SASL_PLAINTEXT
sasl.kerberos.service.name = Кафка
Симуляция того же самого из Python анаконды вызывает ошибку.
import os
import socket
import gssapi
import logging
from kafka import KafkaProducer
KAFKA_TOPIC = 'Topic1'
KAFKA_BROKERS = 'host.domain.com:9092'
os.environ['KAFKA_OPTS'] = '-Djava.security.auth.login.config=/opt/local/account1/jaas.conf'
logging.basicConfig(level=logging.INFO)
messages = [b'hello kafka', b'I am sending', b'3 test messages']
producer = KafkaProducer(bootstrap_servers=KAFKA_BROKERS, api_version=(0 , 10), security_protocol='SASL_PLAINTEXT', sasl_mechanism='GSSAPI', sasl_kerberos_service_name='kafka', max_request_size=3173440261)
for m in messages:
print (producer.send(KAFKA_TOPIC, m).get(timeout=30))
ОШИБКА:
File "/opt/local/bgdatapp/anaconda3/lib/python3.7/site-packages/kafka/conn.py", line 255, in init
assert gssapi is not None, 'GSSAPI lib not available'
AssertionError: GSSAPI lib not available
Exception ignored in: <function BrokerConnection.del at 0x7f715f4b3378>
Traceback (most recent call last):
File "/opt/local/bgdatapp/anaconda3/lib/python3.7/site-packages/kafka/conn.py", line 696, in del
self._close_socket()
File "/opt/local/bgdatapp/anaconda3/lib/python3.7/site-packages/kafka/conn.py", line 691, in _close_socket
if self._sock:
AttributeError: 'BrokerConnection' object has no attribute '_sock'
INFO:kafka.producer.kafka:Kafka producer closed
Можете ли вы предложить какое-либо исправление для решения этой проблемы?
Спасибо