Cloudera集群添加Kafka 3.0服务失败求助
Let's break down your questions and the core issue using the logs you shared:
1. ZooKeeper Root Path Configuration
The ZooKeeper Root path (like /kafka) is your choice—it doesn't depend on the base ZooKeeper installation setup. This path is where Kafka stores all its cluster-specific metadata (broker details, topic configurations, consumer offsets, etc.).
Setting it to /kafka is totally standard and valid, as long as:
- All Kafka brokers in your cluster use the exact same root path
- The Kafka service account has permission to create/write to this path (Kafka will auto-create the path if it doesn't exist, assuming proper ZooKeeper ACLs are configured)
Your current setup here isn't causing the startup failure.
2. Single-Node ZooKeeper Delay Alerts & Broker Startup
From your Kafka logs, we can see the broker successfully connected to ZooKeeper:
2018-05-17 10:36:08,028 INFO org.apache.zookeeper.ClientCnxn: Session establishment complete on server VMClouderaMasterDev01/10.150.1.22:2181, sessionid = 0x1626c7087e729cb, negotiated timeout = 6000
So the max request delay alerts on your single-node ZK aren't the direct cause of the startup failure.
That said, a single-node ZooKeeper is a critical single point of failure, and high latency here could cause runtime issues (like topic creation failures, offset sync problems). You should monitor this closely, but it's not why your broker won't start right now.
3. Root Cause: OutOfMemoryError
Looking at your stdout log, the issue is unambiguous:
java.lang.OutOfMemoryError: Java heap space Dumping heap to /tmp/kafka_kafka-KAFKA_BROKER-933a1dc0c29ca08ffe475da27d5b13d4_pid113208.hprof ...
Your Kafka broker is running out of Java heap memory before it can finish starting up.
Checking the JVM options in your stderr log, there's no explicit setting for -Xmx (maximum heap size) or -Xms (initial heap size)—so Kafka is using the default JVM heap size (often just 512MB or 1GB, which is far too small for a Kafka broker).
Fix Steps:
- In Cloudera Manager, navigate to your Kafka service configuration page
- Locate the KAFKA_JVM_PERFORMANCE_OPTS parameter (or a dedicated "Broker Heap Size" setting, depending on your CM version)
- Add explicit heap size values, for example:
(Adjust based on your node's available RAM—4GB is a safe starting point; leave at least 2-4GB of RAM for the OS and other cluster services)-Xmx4g -Xms4g - Save the configuration and restart the Kafka brokers
The SLF4J multiple bindings warning in your stderr is harmless for startup—it just means two versions of the SLF4J log4j binding exist in the classpath. You can ignore it for now, or clean up the duplicate jar later, but it's not causing the crash.
内容的提问来源于stack exchange,提问作者JeyJ

