KafkaServer 管理

1、启动kafka 单节点

  kafka 启动单节点只需运行bin目录下的执行脚本 kafka-server-start.sh,该脚本运行时需要传入 server.properties 文件路径。

  kafka-server-start.sh -daemon ../config/server.properties

  -daemon 是一个可选参数,表示程序已守护进程的方式后台运行;

  在启动的时候我们还可以覆盖 server.properties 相应的默认配置, 格式为:--override property=value;

  默认堆初始化空间大小为1GB,最大堆空间为1GB;

  开启JMX监控启动方式:JMX_PORT=9999 kafka-server-start.sh -daemon ../config/server.properties 或者 启动脚本中新增配置:export JMX_PORT=9999;

2、启动kafka集群

  kafka没有提供同时启动集群所有节点的执行脚本;

#启动 Kafka 集群的脚本代码 kafka-cluster-start.sh
#!/bin/bash

brokers="server-1 server-2 server-3"
KAFKA_HOME="/usr/local/software/kafka/kafka_2.11-1.1.0"

echo "INFO:Begin to start kafka cluster..."

for broker in $brokers
do
	echo "INFO:Start kafka on ${broker} ..."
	ssh ${broker} -C "source /etc/profile; sh ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties"
	if [ $? -eq 0 ]; then
		echo "INFO:[${broker}] Start successfully"
	fi
done

echo "INFO:Kafka cluster starts successfully"

  定义了变量 brokers用来保存集群中各个节点的机器域名,机器域名可以在 /etc/host 中进行配置 ;

  执行这个脚本之前要确保安装配置了SSH,因为是通过 SSH 登录到对应的的节点,然后执行kafka-server-start.sh启动脚本;

  集群启动脚本只需要保存在集群中的任何一个节点,并给该文件赋予可执行权限,命令:chmod +x kafka-cluster-start.sh  

  由于kafka运行在JVM之上,因此会依赖相应系统环境配置,为了保证各个环境配置在执行脚本时已生效,在启动命令中加入了 source /etc/profile 命令;

3、关闭kafka单个节点

  kafka自带了关闭server的脚本 kafka-server-stop.sh;

#kafka-server-stop.sh

SIGNAL=${SIGNAL:-TERM} PIDS=$(ps ax | grep -i 'kafka.Kafka' | grep java | grep -v grep | awk '{print $1}') if [ -z "$PIDS" ]; then echo "No kafka server to stop" exit 1 else kill -s $SIGNAL $PIDS fi

  该脚本实现的功能是查找进程名为 Kafka 的进程的PID,然后杀掉该进程;但是该脚本在某些版本的操作系统执行时并不能关闭kafka,原因是该脚本查找进程名为Kafka的进程并不能找见,所以关不掉Kafka。

  若发现自带的脚本关不了 kafka服务,可以通过修改该脚本中查找进程名为Kafka的进程的命令,PID=$(jps | grep -i 'kafka' | awk '{print $1}' )

4、关闭kafka集群

  关闭kafka集群脚本 kafka-cluster-stop.sh

#kafka-cluster-stop.sh
#!/bin/bash

brokers="server-1 server-2 server-3"
KAFKA_HOME="/usr/local/software/kafka/kafka_2.11-1.1.0"

echo "INFO:Begin to shutdown kafka cluster..."

for broker in $brokers
do
    echo "INFO:Shutdown kafka on ${broker} ..."
    ssh ${broker} -C "${KAFKA_HOME}/bin/kafka-server-stop.sh"
    if [ $? -eq 0 ]; then
        echo "INFO:[${broker}] Shutdown completed"
    fi
done

echo "INFO:Kafka cluster Shutdown completed"
原文地址:https://www.cnblogs.com/super-jing/p/11090437.html