【问题标题】:Kafka broker startup memory issueKafka broker 启动内存问题
【发布时间】:2015-08-13 11:04:02
【问题描述】:

我是 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 卷。

【问题讨论】:

  • 通过 free -m 命令检查主存是否空闲

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


【解决方案1】:

这是一个内存问题。我将 kafka-server-startup.sh 和 zookeeper-server-start.sh 中最小和最大内存分配的值更新为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" 并启动了 zookeeper 和 kafka 服务器都工作正常。谢谢

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 是的,这是内存问题。我将 kafka-server-startup.sh 和 zookeeper-server-start.sh 中的最小和最大内存分配值更新为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"并启动了 zookeeper 和 kafka 服务器都运行良好。谢谢。
    • 要补充这一点,你可以运行 systemctl status kafka 看看你是否确实有内存问题
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2017-10-27
      • 2017-03-21
      • 2015-02-07
      • 1970-01-01
      • 2014-05-15
      相关资源
      最近更新 更多