kafka_2.11-2.4.1单机安装

2024-04-15 08:02:00 浏览数 (2)

kafka_2.11-2.4.1单机安装

下载

官网地址: http://kafka.apache.org/downloads.html

代码语言:javascript复制
# 2.11是scala的版本,2.4.1是kafka的版本
wget https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11‐2.4.1.tgz 

创建kafka相关目录

代码语言:javascript复制
mkdir -p /usr/local/kafka/kafka_2.11-2.4.1/kafka-logs

上传安装包并解压

代码语言:javascript复制
tar -zxvf kafka_2.11-2.4.1.tgz -C /usr/local/kafka/

[选]修改配置文件

如果zookeeper和kafka在同一台机器上,单机版无需任何修改用默认配置可以启动

修改原配置文件前建议先备份一下

代码语言:javascript复制
cp /usr/local/kafka/kafka_2.11-2.4.1/config/server.properties /usr/local/kafka/kafka_2.11-2.4.1/config/server.properties.bak

建议修改日志目录

默认是log.dirs=/tmp/kafka-logs,/tmp下的文件会被系统定期清理,建议修改成自己的目录

配置zookeeper

zookeeper默认配置zookeeper.connect=localhost:2181,如果kafka和zookeeper在同一台机器上可以不修改

监听器listeners

默认监听localhost:9092,如果服务器是多网卡可以配置多个,用逗号分隔,如果配置为0.0.0.0:9092则表示监听所有网卡

对外公布的监听器advertised.listeners

  • advertised.listeners对外公布的监听器,给客户端和其他broken使用的,(你想想看,listeners是 Broker 用来监听网络请求的那么, 其他 Broker 或者客户端想要与它通信, 则需要知道具体的 IP:PORT 吧?所以, 为了让别人知道自己的监听器, 那么就需要公开出去, 当然这个公开的形式, 是通过 zk 来共享数据)
  • 如果advertised.listeners不配置,则使用和listeners一样的属性
  • advertised.listeners不支持0.0.0.0这种形式, 所以如果listeners设置成0.0.0.0,则必须设置advertised.listeners属性。(0.0.0.0表示监听 Broker 上任意的网卡的, 你将这个发布出去, 那么别的 Broker 和客户端怎么知道你具体的 ip 和端口呢?)

[选]修改启动脚本

默认需要1G内存,如果内存不足起不来,特别是1G的云服务器

代码语言:javascript复制
vim /usr/local/kafka/kafka_2.11-2.4.1/bin/kafka-server-start.sh
代码语言:javascript复制
#!/bin/bash

if [ $# -lt 1 ];
then
        echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
        exit 1
fi
base_dir=$(dirname $0)

if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
    export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
fi

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    # 默认是1G
    export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
fi

EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}

COMMAND=$1
case $COMMAND in
  -daemon)
    EXTRA_ARGS="-daemon "$EXTRA_ARGS
    shift
    ;;
  *)
    ;;
esac

exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"                                     

启动zookeeper

zookeeper安装启动参考https://blog.csdn.net/weixin_41883161/article/details/137680225

后台启动kafka

代码语言:javascript复制
sh /usr/local/kafka/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.11-2.4.1/config/server.properties &

查看启动日志

代码语言:javascript复制
tail -f /usr/local/kafka/kafka_2.11-2.4.1/logs/server.log

停止kafka

代码语言:javascript复制
sh /usr/local/kafka/kafka_2.11-2.4.1/bin/kafka-server-stop.sh

0 人点赞