2

我正在尝试使用 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 <librdkafka/rdkafka.h>
                                ^
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

然而,百胜吐出这个错误:

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,所以任何建议都将不胜感激。

4

1 回答 1

7

Amazon Linux 2016.19 似乎基于 RHEL 6,因此您需要参考 Confluent 的 RHEL 6 Yum 存储库,如Confluent 文档中所述,即通过将以下内容写入/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)
于 2017-01-19T21:37:55.307 回答