我正在尝试使用pip安装python confluent-kafka软件包。我正在运行Amazon Linux(版本Amazon Linux AMI版本2016.09)的aws ec2实例上尝试此操作。我只是在做:
pip install pip install confluent-kafka
但是,这会产生以下错误:
In file included from confluent_kafka/src/confluent_kafka.c:17:0: confluent_kafka/src/confluent_kafka.h:21:32: fatal error: librdkafka/rdkafka.h: No such file or directory #include^ compilation terminated. error: command 'gcc' failed with exit status 1
为了解决这个问题,我做了两件事:
1)按照此页面上的说明进行操作,并在文件/etc/yum.repos.d/confluent.repo中添加以下内容:
[Confluent.dist] name=Confluent repository (dist) baseurl=http://packages.confluent.io/rpm/3.0/6 gpgcheck=1 gpgkey=http://packages.confluent.io/rpm/3.0/archive.key enabled=1 [Confluent] name=Confluent repository baseurl=http://packages.confluent.io/rpm/3.0 gpgcheck=1 gpgkey=http://packages.confluent.io/rpm/3.0/archive.key enabled=1
2)尝试使用以下命令安装librdkafka库:
sudo yum clean all sudo yum install -y librdkafka1 librdkafka-devel
Yum吐出此错误,但是:
Error: Package: librdkafka1-0.9.1_confluent3.0.1-1.el7.x86_64 (Confluent.dist) Requires: openssl-libs Error: Package: librdkafka1-0.9.1_confluent3.0.1-1.el7.x86_64 (Confluent.dist) Requires: libsasl2.so.3()(64bit)
经过一番谷歌搜索后,我尝试:
sudo ln /usr/lib64/libsasl2.so.2 /usr/lib64/libsasl2.so.3
这没有效果。我尝试进行yum升级,但这也无法解决问题。经过大量的搜索之后,这个kafka用户组帖子是我所能找到的仅有的远程帮助内容,但可悲的是它没有包含解决问题的方法。
我真的很想在这个实例上启动并运行kafka python,因此任何建议将不胜感激。
Amazon Linux 2016.19似乎基于RHEL 6,因此您需要按照Confluent文档中的说明引用Confluent的RHEL 6 Yum存储库,即将以下内容写入/etc/yum.repos.d/confluent
:
[Confluent.dist] name=Confluent repository (dist) baseurl=http://packages.confluent.io/rpm/3.1/6 gpgcheck=1 gpgkey=http://packages.confluent.io/rpm/3.1/archive.key enabled=1 [Confluent] name=Confluent repository baseurl=http://packages.confluent.io/rpm/3.1 gpgcheck=1 gpgkey=http://packages.confluent.io/rpm/3.1/archive.key enabled=1
其次是:
$ sudo yum clean all $ sudo yum install gcc librdkafka1 librdkafka-devel cyrus-sasl-devel openssl-libs python-devel $ pip install confluent-kafka (possibly in a virtualenv)