我正在使用Zookeeper和kafka(0.8.2.1)运行Python2.7。我正在使用最新的Kafka-python客户端(pip install kafka)。
以下是最小可重现的示例:
from kafka import KafkaConsumer
BOOTSTRAP_SERVER = 'myserver.com:my_port'
consumer = KafkaConsumer('my-topic', bootstrap_servers=BOOTSTRAP_SERVER)
print 'about to print messages'
for msg in consumer:
print msg
这将打印'即将打印消息',然后整个VM(Ubuntu Xenial,16.04 LTS)冻结。我甚至看不到虚拟机内的光标。
有趣的是,我在我的其他计算机(不是VM)上运行完全相同的Ubuntu映像,它的工作原理。 VM正在ESXi 6.5上运行。
这个答案PyCharm freezing whole computer on Ubuntu说它可能是openjdk的错(我不使用pycharm;我从终端执行代码),所以我切换到Oraclejdk。没有解决问题。我已经尝试了所有我能想到的东西,并且我的智慧结束了(ubuntu可信赖正在下载,我将尝试在该映像上运行它,看看它是否适用于VM)。任何指针/帮助赞赏。谢谢!
更新:如果您在Ubuntu Xenial(16.04)或更新版本上也遇到此问题,请尝试Trusty(14.04)映像。 SEEMS为我解决了这个问题,但可能还为时过早。
更新2我错了。仍然无法正常工作。看起来像内核中的错误。
这是一个已知的ESX错误。显然,原因是某些英特尔CPU中的某些无效操作码被新版本的Ubuntu(Xenial及以上版本)触发。
我通过使用Ubuntu 14.04(可靠)而不是16.04来解决它。希望这有助于某人。其他对我不起作用的解决方案(以及参考链接)如下:
launchpad bug-report(编辑vmx文件一点,对我不起作用)https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1630774
vmware推荐的解决方法(编辑grub文件有点对我不起作用)https://communities.vmware.com/message/2626830#2626830