Kafka经纪人启动内存问题

时间:2015-08-13 11:04:02

标签: hadoop ubuntu-14.04 apache-kafka hadoop-streaming

我是Kafka和Hadoop技术的新手。我试图在AWS EC2 VM实例上安装并运行我的第一个单节点,单个代理群集,我完成了:

1)java安装

2)使用java相关条目更新~/.bashrc and ~/.nash_profile个文件

3)能够运行内部zookeeper实例,但是

4)一旦我试图启动kafka经纪人,它就会抛出以下错误消息:

$ bin/kafka-server-start.sh config/server.properties
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0130000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)

There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (malloc) failed to allocate 986513408 bytes for committing reserved memory.
An error report file with more information is saved as:
/usr/local/kafka/hs_err_pid2549.log

我不确定我做错了什么。此AWS EC2 VM实例是新创建的Ubuntu-t2.micro实例,具有8 GB通用SSD卷。

3 个答案:

答案 0 :(得分:6)

所以我相信你得到的错误是关于RAM内存,而不是SSD内存。

我做了一个快速谷歌搜索,似乎t2.micro帐户只有1GB的RAM?那是对的吗?从错误和这个Stack Overflow Answer,似乎你没有足够的RAM。它说malloc要求986mb或内存,基本上是1GB,你的机器上只有1GB。

答案 1 :(得分:5)

这是一个记忆问题。我将kafka-server-startup.sh和zookeeper-server-start.sh中的最小和最大内存分配值更新为export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M",并启动zookeeper和kafka服务器都运行良好。感谢

答案 2 :(得分:0)

如果需要对Confluent Kafka进行相同的更改。对于centos,请修改/usr/lib/systemd/system/confluent-kafka.service文件,并在该文件中传递"KAFKA_HEAP_OPTS=-Xmx512M -Xms512M"值。这样可以保护环境免于升级。然后重新启动systemctl守护程序。通过在服务systemctl status confluent-kafka上运行状态来检查新kafka的值。