1文档编写目的
Kafka支持多种客户端语言(C/C++、Go、Java、JMS、.NET、Python)。Fayson在前面多篇文章介绍了Java访问Kerberos和非Kerberos环境下的Kafka,参考《如何使用Java连接Kerberos的Kafka》。本篇文章Fayson主要介绍使用Python2访问Kerberos环境下的Kafka。在学习本篇文章内容前你还需要知道《如何通过Cloudera Manager为Kafka启用Kerberos及使用》。
- 测试环境:
1.操作系统:Redhat7.4
2.CM和CDH版本为5.15.0
3.CDK2.2.0(0.10.2)
4.Python 2.7.15
2 环境准备
在使用Python访问Kafka前,还需要为Python环境安装相关的Kafka包,这里Fayson使用官网推荐使用的confluent-kafka-python依赖包。该依赖包的GitHub地址为:https://github.com/confluentinc/confluent-kafka-python,关于confluent-kafka-python的详细说明可以参考GitHub。
如下为各个语言对Kafka功能的支持情况
https://docs.confluent.io/current/clients/index.html#feature-support
接下来准备Python访问Kafka的运行环境。
1.安装librdkafka依赖包,该依赖包为操作系统的依赖包
[root@cdh4 ~]# yum install -y librdkafka-devel python-devel
注意:安装的librdkafka依赖包的版本需要>=0.11.5,librdkafka是C语言实现的Apache Kafka高性能客户端,为生产和使用Kafka提供高效可靠的客户端。
- 由于我们访问的是Kerberos环境下的Kafka,所以需要使用源码模式安装confluent-kafka
[root@cdh4 anaconda2]# /opt/cloudera/anaconda2/bin/pip install --no-binary :all: confluent-kafka
[root@cdh4 anaconda2]# /opt/cloudera/anaconda2