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

news2024/11/23 17:05:09

文章目录

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


前言

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


使用shell脚本一键安装

1. 复制脚本

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

#!/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. 增加执行权限

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

chmod a+x /tmp/install_kafka.sh

3. 执行脚本

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

/tmp/install_kafka.sh

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

成功如下图所示:
在这里插入图片描述

4. 加载用户环境变量

source ~/.bashrc

5. 启动/停止Kafka内置zookeeper

启动Kafka内置的zookeeper

$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties

启动成功如下图所示:

在这里插入图片描述
停止Kafka内置的zookeeper

$KAFKA_HOME/bin/zookeeper-server-stop.sh

6. 启动/停止Kafka单机版

启动Kafka单机版

$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties

启动成功如下图所示:
在这里插入图片描述
停止Kafka单机版

$KAFKA_HOME/bin/kafka-server-stop.sh

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1288318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【链表Linked List】力扣-24 两两交换链表中的节点

目录 题目描述 解题过程 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:he…

webAPL用户注册倒计时

上一篇文章我已经留下这个题 以下是这道题代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><t…

机器学习---线性回归算法

1、什么是回归&#xff1f; 从大量的函数结果和自变量反推回函数表达式的过程就是回归。线性回归是利用数理统计中回归分析来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 2、一元线性回归 3、多元线性回归 如果回归分析中包括两个或两个以上的自变量&a…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《基于自适应扩散核密度估计的时序相关概率最优潮流计算方法》

这个标题涉及到电力系统中潮流计算的一种方法&#xff0c;具体解读如下&#xff1a; 概述&#xff1a; 时序相关概率最优潮流计算方法&#xff1a; 这是一种电力系统中潮流计算的方法&#xff0c;其中考虑了时序&#xff08;时间序列&#xff09;和概率的相关性。概率最优潮流通…

MySQL 数据库如何实现 XA 规范?

本文我们来讨论 MySQL 的 XA 规范有哪些应用相关的内容。 MySQL 为我们提供了分布式事务解决方案&#xff0c;在前面的内容中提到过 binlog 的同步&#xff0c;其实是 MySQL XA 规范的一个应用&#xff0c;那么 XA 规范是如何定义的&#xff0c;具体又是如何应用的呢&#xff…

飞行汽车开发原理(上)

前言 小节的安排是由浅入深&#xff0c;要按顺序读&#xff1b;有电路知识基础的同学可跳到“计算机电路”一节开始。因为知识点之间有网状依赖&#xff0c;没办法按分类来讲。 为了避免过于深入、越讲越懵&#xff0c;很多描述仅为方便理解、不求严谨。 半导体特性 导体&a…

java学习part37定制排序和自然排序

150-常用类与基础API-使用Comparator接口实现定制排序及对比_哔哩哔哩_bilibili 1.自然排序 2.定制排序 对于一些排序方法&#xff0c;允许传入的话按定制的排序规则来&#xff0c;不传入默认按自然排序来。 匿名方式 3区别

5-Tornado入门、程序的原理图、tornado不能使用同步代码的演示

安装 pip install tornado第一个程序 from tornado import web from tornado import ioloop class IndexHandler(web.RequestHandler):def get(self):self.write(Hello Tornado!!123)if __name__ __main__:# 1.创建了app对象&#xff0c;设置路由,并开启debug模式app web.A…

17、迭代器模式(Iterator Pattern)

迭代器模式提供了顺序访问集合对象中的各种元素&#xff0c;而不暴露该对象内部结构的方法。如Java中遍历HashMap。 迭代器模式将遍历集合中所有元素的操作封装成迭代器类&#xff0c;其目的是在不暴露集合对象内部结构的情况下&#xff0c;对外提供统一访问集合的内部数据的方…

Python OS模块常用方法整理

os模块包含了普遍的操作系统和文件目录方法 引入类库 首先需要引入类库 import os 常用方法 OS模块方法 获取操作系统类型 nt->window:Microsoft Windows NT posix->Linux/Mac OS: Portable Operating System Interface of UNIX&#xff08;可移植操作系统接口&…

如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)

博主介绍&#xff1a;Java领域优质创作者,博客之星城市赛道TOP20、专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。 &#x1f345;文末获取源码下载地址&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb;…

小航助学题库白名单竞赛考级蓝桥杯等考scratch(12级)(含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09; 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;

Java面试题(每天10题)-------连载(44)

目录 Dubbo篇 1、Dubbo支持哪些协议&#xff0c;每种协议的应用场景&#xff0c;优缺点 2、Dubbo超时时间怎么设置&#xff1f; 3、Dubbo有哪些注册中心&#xff1f; 4、Dubbo集群的负载均衡有哪些策略 5、Dubbo是什么&#xff1f; 6、Dubbo的主要应用场景&#xff1f;…

豪华股东背书:欧洲AI新星Mistral估值飙升至20亿美元

在人工智能领域&#xff0c;一家名为Mistral的初创公司近期引起了广泛关注。这家仅成立不到一年的公司&#xff0c;凭借其强大的技术实力和豪华的股东背景&#xff0c;已经成功吸引了包括A16z、英伟达、Salesforce等在内的多家全球顶级投资机构的关注。据知情人士透露&#xff…

基于阿里云服务网格流量泳道的全链路流量管理(一):严格模式流量泳道

作者&#xff1a;尹航 概述 灰度发布是一种常见的对新版本应用服务的发布手段&#xff0c;其特点在于能够将流量在服务的稳定版本和灰度版本之间时刻切换&#xff0c;以帮助我们用更加可靠的方式实现服务的升级。在流量比例切换的过程中&#xff0c;我们可以逐步验证新版本服…

TCP显式编码报文长度发送与接收

报文格式最重要的是如何确定报文的边界。常见的报文格式有两种方法&#xff0c;一种是发送端把要发送的报文长度预先通过报文告知给接收端&#xff1b;另一种是通过一些特殊的字符来进行边界的划分。 这篇文章中讲的是发送报文长度的方法。报文类型如下&#xff1a; 第一部分…

MySQL主从复制(一主一从、双主双从)

一、概述 1. 数据库主从概念、优点、用途 主从数据库是什么意思呢&#xff0c;主是主库的意思&#xff0c;从是从库的意思。数据库主库对外提供读写的操作&#xff0c;从库对外提供读的操作。   数据库为什么需要主从架构呢&#xff1f; 高可用&#xff0c;实时灾备&#x…

QT 中 多线程(备查)

基础 一个线程处理窗口事件&#xff0c;其他线程进行逻辑运算 在QT中使用多线程&#xff0c;需要额外注意的&#xff1a; 1&#xff09;默认的线程在Qt中称之为窗口线程&#xff0c;也叫主线程&#xff0c;负责窗口事件处理或者窗口控件数据的更新 2&#xff09;子线程负责后台…

TA-Lib学习研究笔记(九)——Pattern Recognition (1)

TA-Lib学习研究笔记&#xff08;九&#xff09;——Pattern Recognition &#xff08;1&#xff09; 0.程序代码 形态识别的函数的应用&#xff0c;通过使用A股实际的数据&#xff0c;验证形态识别函数&#xff0c;用K线显示出现标志的形态走势&#xff0c;由于入口参数基本上…

面试 Redis 八股文十问十答第一期

面试 Redis 八股文十问十答第一期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1.Redis数据类型有哪些? String&#xff08;字符串&#xff09;&#xff1a;是…