首页 > 系统相关 >在Linux搭建Kafka集群

在Linux搭建Kafka集群

时间:2023-04-05 17:12:53浏览次数:64  
标签:opt 2.13 kafka 2.8 集群 Linux echo soft Kafka

前言

以kafka_2.13-2.8.0版本做示例,安装架构图如下所示,4台服务器,4个节点的Zookeeper集群(1主2从1观察)以及3个Kafka服务。

image-20210916141520025

准备工作

  • 准备多台服务器来搭建集群环境
  • Kafka需要Zookeeper做分布式协调,所以得先准备好Zookeeper集群。可以参考 在Linux搭建Zookeeper集群
  • 给系统配置hosts简化后续配置,实际IP根据自己情况修改
echo "追加hosts配置" > /dev/null
echo '
192.168.252.131 node1
192.168.252.132 node2
192.168.252.133 node3
192.168.252.134 node4' >> /etc/hosts

echo "使hosts配置生效" > /dev/null
/etc/init.d/network restart

安装和配置

下载、解压安装包

echo "创建安装目录" > /dev/null
mkdir /opt/soft

echo "下载编译后的包" > /dev/null
wget -P ~/soft/kafka https://dlcdn.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz

echo "解压到安装目录下" > /dev/null
tar -xf ~/soft/kafka/kafka_2.13-2.8.0.tgz -C /opt/soft/

编辑配置,除了broker.id其他的配置一般都是一样的

echo "备份配置文件" > /dev/null
cp /opt/soft/kafka_2.13-2.8.0/config/server.properties /opt/soft/kafka_2.13-2.8.0/config/server.properties.bak

echo "编辑配置文件" > /dev/null
vim /opt/soft/kafka_2.13-2.8.0/config/server.properties
# 每个Kafka配置一个唯一的ID
broker.id=0
# 监听的端口号
listeners=PLAINTEXT://:9092
# 数据存放目录
log.dirs=/var/lib/kafka-logs
# Zookeeper集群地址,/kafka代表数据存放目录,避免和其他应用混淆
zookeeper.connect=node1:2181,node2:2181,node3:2181/kafka

scp 将安装文件复制到其他服务器

echo "将安装文件复制到其他服务器" > /dev/null
scp -r /opt/soft/kafka_2.13-2.8.0 root@node1:/opt/soft/

配置环境变量

echo "追加KAFKA_HOME环境变量" > /dev/null
echo '
export KAFKA_HOME=/opt/soft/kafka_2.13-2.8.0
export PATH=$PATH:$KAFKA_HOME/bin' >> /etc/profile

echo "使环境变量生效" > /dev/null
source /etc/profile

启动和停止

# 前台启动
kafka-server-start.sh /opt/soft/kafka_2.13-2.8.0/config/server.properties

# 后台启动
kafka-server-start.sh -daemon /opt/soft/kafka_2.13-2.8.0/config/server.properties

# 停止
kafka-server-stop.sh

测试

  • 创建Topic
# 创建名为test的topic,指明分配1个分区和1个副本
kafka-topics.sh --bootstrap-server node1:9092 --create --topic test --partitions 2 --replication-factor 2
# Created topic test.
  • 创建消费者
# 创建消费者消费test
kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test
  • 创建生产者,在命令行窗口输入消息,回车发送
# 创建生产者向test生产数据
kafka-console-producer.sh --broker-list node1:9092 --topic test

可以看到发送的消息都被消费了,ctrl+c 停止生产者和消费者

image-20210923105557806

image-20210923105625014

  • 清空数据
rm -rf /var/kafka-logs

参考链接

Apache - kafka

在Linux搭建Zookeeper集群

标签:opt,2.13,kafka,2.8,集群,Linux,echo,soft,Kafka
From: https://www.cnblogs.com/shuiyao3/p/17289825.html

相关文章

  • 在Linux部署Redis主从和哨兵集群实现高可用
    前言本文主要讲述在Linux系统中配置和部署Redis主从集群和哨兵,实现高可用和自动故障迁移。准备工作参考Redis单机部署安装3个Redis服务作一主二从,本文准备了6380(主)、6381(从)和6382(从)。参考Redis单机部署安装3个Redis服务作哨兵集群,本文准备了26380......
  • 在Linux部署Redis Cluster集群
    前言本文讲述在Linux系统部署RedisCluster实现数据分片的具体步骤。请参考Redis单机部署下载编译。RedisCluster是什么?RedisCluster是官方提供的一种用数据分片来实现横向扩容的解决方案,由一个或多个Redis服务组成一个无主集群。对Key使用哈希算法将数据分散......
  • 在Linux部署Redis代理Predixy实现数据分片
    前言本文以predixy-1.0.5为例,讲述Redis代理Predixy安装过程。Predixy是一款高性能全特征Redis代理,支持Redis-sentinel和Redis-cluster。作者拿其它常用代理做了性能测评,Predixy在各个维度性能都是最优的,与其他代理的功能对比。我们可以通过取模、随机、一致性哈希......
  • 【Linux】性能调优命令
    进程性能pidstatcat/proc/5598(PID)/statusfreepstoppstreepgrepvmstat#使用top命令,查找pid$top#通过TOP-H-p进程ID,找到具体的线程占用情况$top-H-p21564#通过命令pstack进程ID显示线程堆栈\$pstack24714Java相关参考文档:https://qinxuew......
  • 在Linux部署Redis代理Twemproxy实现数据分片
    前言本文主要讲述Redis代理Twemproxy安装过程。Twemproxy是推特开源用于Memcached和Redis的轻量级代理。这里以0.5.0版本为例。我们可以通过取模、随机、一致性哈希等算法将数据分散在多个Redis服务来实现水平扩展。但是客户端直连就需要跟每个Redis服务产生连接,......
  • 在Linux部署ElasticJob-Lite-UI运维控制台
    前言ElasticJob-Lite-UI是任务的分布式调度解决方案(ElasticJob-Lite)搭配的可视化运维控制台。运维控制台和ElasticJob-Lite并无直接关系,是通过读取作业注册中心(Zookeeper)数据展现作业状态,或更新注册中心数据修改全局配置。它具有这些功能:登录安全控制;注册中心、事件追踪数据源管......
  • Redis——(主从复制、哨兵模式、集群)的部署及搭建
    重点:主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。哨兵和集群都是在主从复制基础上实现高可用的。缺点:故障恢复无法自动化,写操作无法负载均衡,存储能力受到单机的限制。哨兵:在主从复制的基础上,哨兵......
  • 在Linux部署Etcd集群
    前言目前解决分布式系统下数据强一致性的主要算法理论是Paxos和Raft,偏向CAP定理一致性(Consistency)、可用性(Availability)、分区容错性(Partitiontolerance)中的CP。Raft在容错和性能方面和Paxos相当,不同之处在于它将问题分解成相对独立的子问题,逻辑较为清晰,更易于理解。关于Raft......
  • 在Linux部署单机Redis完整过程
    前言本文以redis-6.2.5为例,讲述在Linux系统下单机Redis下载、编译、打包、安装为服务、启动和访问的整个过程。安装环境为LinuxCentOS64,本文用的7.5版本.下载编译目录在当前目录soft/redis下,最终服务可执行程序在/opt/soft/redis6中。准备工作#查看是否有文件下载......
  • 在Linux部署Apollo配置中心
    前言这篇是参考官网文档总结的Apollo分布式部署方式,包含具体步骤、资源和相关脚本,也在必要的地方给出了资料来源。通过Apollo-中文文档-部署架构可以了解到单机、集群和高可用部署架构的最佳实践方式。安装步骤本篇实践是在Linux系统,使用Apollo1.9.1版本为例,要求环境包含......