Kafka安装与配置-shell脚本一键安装配置(单机版)

文章目录

  • 前言
  • 使用shell脚本一键安装
    • [1. 复制脚本](#1. 复制脚本)
    • [2. 增加执行权限](#2. 增加执行权限)
    • [3. 执行脚本](#3. 执行脚本)
    • [4. 加载用户环境变量](#4. 加载用户环境变量)
    • [5. 启动/停止Kafka内置zookeeper](#5. 启动/停止Kafka内置zookeeper)
    • [6. 启动/停止Kafka单机版](#6. 启动/停止Kafka单机版)
  • 总结

前言

本文介绍了使用Shell脚本一键安装Kafka的方法。通过复制脚本并执行,可以自动下载、安装和配置Kafka,使得安装过程更加简便和高效。脚本会检查所需的依赖工具和环境变量,并自动完成相关设置。安装完成后,您可以启动和停止Kafka内置的Zookeeper和单机版Kafka。


使用shell脚本一键安装

1. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_kafka.sh文件。

shell 复制代码
#!/bin/bash

installDir="/opt/module/kafka"
kafka_version="2.2.1"
scala_version="2.11"

if [ -z "$(command -v wget)" ]; then
  sudo yum install -y wget
  echo "wget安装完成"
fi
if [ -z "$JAVA_HOME" ]; then
  echo "JAVA_HOME未设置,请安装jdk1.8,设置Java环境变量再来执行此脚本"
  exit 1
fi
if [ ! -d "${installDir}" ]; then
  sudo mkdir -p "${installDir}"
  if [ $? -eq 0 ]; then
    echo "安装目录${installDir}已创建"
  else
    echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
    exit 1
  fi
fi
if [ ! -f /tmp/kafka_$scala_version-$kafka_version.tgz ]; then
  wget https://archive.apache.org/dist/kafka/$kafka_version/kafka_$scala_version-$kafka_version.tgz -P /tmp/
  if [ $? -eq 0 ]; then
    echo "kafka_$scala_version-$kafka_version.tgz下载成功"
  else
    echo "kafka_$scala_version-$kafka_version.tgz下载失败,请重试或手动下载到/tmp目录下再次执行"
    echo "下载地址:https://archive.apache.org/dist/kafka/$kafka_version/kafka_$scala_version-$kafka_version.tgz"
    exit 1
  fi
fi

if [ -d $installDir/kafka_$scala_version-$kafka_version ]; then
  echo "$installDir/kafka_$scala_version-$kafka_version 已存在,正在删除..."
  sudo rm -rf $installDir/kafka_$scala_version-$kafka_version
fi
tar -zxvf /tmp/kafka_$scala_version-$kafka_version.tgz -C $installDir
if [ $? -eq 0 ]; then
  echo "/tmp/kafka_$scala_version-$kafka_version.tgz解压成功"
else
  echo "/tmp/kafka_$scala_version-$kafka_version.tgz解压失败,请查看异常信息后重试"
  exit 1
fi

#设置kafka环境变量
if [ -z "$KAFKA_HOME" ]; then
  echo >> ~/.bashrc
  echo '#KAFKA_HOME' >> ~/.bashrc
  echo "export KAFKA_HOME=$installDir/kafka_$scala_version-$kafka_version" >> ~/.bashrc
  echo 'export PATH=$PATH:$KAFKA_HOME/bin' >> ~/.bashrc
else
  echo "KAFKA_HOME已有设置:$KAFKA_HOME"
fi
#设置kafka中zookeeper的快照目录
sed -i "s|^dataDir=.*|dataDir=$installDir/kafka_$scala_version-$kafka_version/zookeeper|" "$installDir/kafka_$scala_version-$kafka_version/config/zookeeper.properties"
if [ $? -eq 0 ]; then
  echo "kafka中zookeeper的快照目录设置成功"
else
  echo "kafka中zookeeper的快照目录设置失败,请查看异常信息后重试"
  exit 1
fi
#修改kafka配置文件
ip_addr=$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+')
sed -i "s|#listeners=PLAINTEXT://:9092|listeners=PLAINTEXT://$ip_addr:9092|" "$installDir/kafka_$scala_version-$kafka_version/config/server.properties"
if [ $? -eq 0 ]; then
  echo "kafka配置文件修改成功"
else
  echo "kafka配置文件修改失败,请查看异常信息后重试"
  exit 1
fi
echo "kafka下载、安装、配置成功"

exit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

shell 复制代码
chmod a+x /tmp/install_kafka.sh

3. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Kafka。

shell 复制代码
/tmp/install_kafka.sh

请等待安装完成,如有异常会有提示。

成功如下图所示:

4. 加载用户环境变量

shell 复制代码
source ~/.bashrc

5. 启动/停止Kafka内置zookeeper

启动Kafka内置的zookeeper

shell 复制代码
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties

启动成功如下图所示:


停止Kafka内置的zookeeper

shell 复制代码
$KAFKA_HOME/bin/zookeeper-server-stop.sh

6. 启动/停止Kafka单机版

启动Kafka单机版

shell 复制代码
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties

启动成功如下图所示:

停止Kafka单机版

shell 复制代码
$KAFKA_HOME/bin/kafka-server-stop.sh

总结

使用Shell脚本一键安装Kafka可以简化安装过程,节省时间和精力。本文提供的脚本具有自动化的功能,可以下载、安装和配置Kafka,使得安装过程更加便捷。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

相关推荐
灰山君1 分钟前
面向高校实训室的数字孪生可视化平台:支持校内部署与200个教学席位
大数据·人工智能·信息可视化·数据可视化·实时大数据
Qyr9910 小时前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能
蓝色的风-202610 小时前
国产算力双雄对决:曙光8000十万卡集群 vs 华为昇腾950超节点深度解析
大数据·人工智能·自然语言处理
醉颜凉10 小时前
Kafka 与 RabbitMQ/RocketMQ 选型对比:场景匹配、性能基准与迁移成本
kafka·消息队列·rabbitmq·rocketmq·中间件选型
泛联新安11 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
杨云龙UP11 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
SelectDB技术团队12 小时前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
大大大大晴天12 小时前
每天认识一个组件:远端数据服务Apache Celeborn
大数据
幂律智能13 小时前
海外业务不同,合同系统该怎么建?
大数据·人工智能
Leo.yuan13 小时前
数据开发即质量检测:FineDataLink 5.0 在生产数据链路中的一体化实践
大数据