• 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"
  • 相关阅读:
    主攻ASP.NET.4.5.1 MVC5.0之重生:创建UIHelper通用自定义分页和选择开关与PagesHelper和IsSelect简单用法
    主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(二)
    @MarkFan 口语练习录音 20140423 [风雨哈佛路.Homeless To Harvard口语录音]
    主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(一)
    离乡与理想 小样
    主攻ASP.NET.4.5.1 MVC5.0之重生:空地搭建一个包含 Ninject框架 项目
    震撼全世界的一块墓碑
    @MarkFan 口语练习录音 20140415 [MDL演讲口语录音]
    PHP预编译处理技术简介
    事物控制之保存点
  • 原文地址:https://www.cnblogs.com/super-jing/p/11090437.html
Copyright © 2020-2023  润新知