Centos7下搭建kafka集群( 消息中间件集群 )

一、搭建kafka集群 ( 消息中间件集群 )

1. kafka集群拓扑结构如下
在这里插入图片描述
2. 首先要保证zookeeper集群先启动,启动命令:zkServer.sh start
未安装zookeeper集群的小伙伴可参考我这篇博客,地址:
https://blog.csdn.net/weixin_44422604/article/details/107145297
3. 下载kafka到node1节点/usr/local/目录下解压,配置环境变量
(1) 进入目录命令:cd /usr/local

在这里插入图片描述
(2) 下载kafka命令:wget https://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
在这里插入图片描述
(3) 解压命令:tar -xvf kafka_2.11-2.0.0.tgz
在这里插入图片描述
(4) 重命名命令:mv kafka_2.11-2.0.0 kafka211_200
在这里插入图片描述
(5) 配置环境变量:vi /etc/profile
在这里插入图片描述
(6) 刷新环境变量:source /etc/profile

在这里插入图片描述
4. 编写 kafka集群自启动脚本到 kafka的bin目录,粘贴后保存
进入目录命令:cd /usr/local/kafka211_200/bin
编辑脚本命令:vi kafka-all.sh
赋予脚本权限:chmod +x kafka-all.sh

#! /bin/bash
# Kafka代理节点地址
hosts=(node1 node2 node3)
# 打印启动分布式脚本信息
mill=`date "+%N"`
tdate=`date "+%Y-%m-%d %H:%M:%S,${mill:0:3}"`

echo [$tdate] INFO [Kafka Cluster] begins to execute the $1 operation.

# 执行分布式开启命令	
function start()
{
	for i in ${hosts[@]}
		do
			smill=`date "+%N"`
			stdate=`date "+%Y-%m-%d %H:%M:%S,${smill:0:3}"`
			ssh root@$i "source /etc/profile;echo [$stdate] INFO [Kafka Broker $i] begins to execute the startup operation.;kafka-server-start.sh $KAFKA_HOME/config/server.properties>/dev/null" &
			sleep 1
		done
}	

# 执行分布式关闭命令	
function stop()
{
	for i in ${hosts[@]}
		do
			smill=`date "+%N"`
			stdate=`date "+%Y-%m-%d %H:%M:%S,${smill:0:3}"`
			ssh root@$i "source /etc/profile;echo [$stdate] INFO [Kafka Broker $i] begins to execute the shutdown operation.;kafka-server-stop.sh>/dev/null;" &
			sleep 1
		done
}

# 查看Kafka代理节点状态
function status()
{
	for i in ${hosts[@]}
		do
			smill=`date "+%N"`
			stdate=`date "+%Y-%m-%d %H:%M:%S,${smill:0:3}"`
			ssh root@$i "source /etc/profile;echo [$stdate] INFO [Kafka Broker $i] status message is :;jps | grep Kafka;" &
			sleep 1
		done
}

# 判断输入的Kafka命令参数是否有效
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|status}"
        RETVAL=1
esac


5. 修改 kafka安装目录conf里的配置文件server.properties
进入目录命令:cd /usr/local/kafka211_200/config
编辑配置命令(修改为下面的配置):vi server.properties

#节点id
broker.id=0
#设置消息记录存储路径
log.dirs=/opt/kafka-logs
#设置zk地址(根据自己zookeeper节点位置配置)
zookeeper.connect=node1:2181,node2:2181,node3:2181
#开启删除kafka主题属性(这个自己添加,没有修改项)
delete.topic.enable=true
#非sasl模式配置kafka集群,注意别的节点中这里要设置为node2,node3
listeners=PLAINTEXT://:9092
#下面内容自己添加,注意修改为自己的ip位置
port=9092
host.name=192.168.28.201
advertised.host.name=192.168.28.201
advertised.port=9092
#设置网络请求处理线程数
num.network.threads=10
#设置磁盘io请求线程数
num.io.threads=20
#设置发送buffer字节数
socket.send.buffer.bytes=1024000
#设置接收buffer字节数
socket.receive.buffer.bytes=1024000
#设置最大请求字节数
socket.request.max.bytes=1048576000
#设置分区数
num.partitions=6
#设置主题保留时间
log.retention.hours=168

6. 同步配置完成node1中的kafka到node2,node3节点上
进入kafka安装目录:cd /usr/local
同步node2命令:scp -r kafka211_200 node2:/usr/local
同步node3命令:scp -r kafka211_200 node3:/usr/local
在这里插入图片描述
像node1中一样,修改环境变量
在这里插入图片描述
刷新环境变量:source /etc/profile

7. 修改node2,3中,kafka目录config中的server.properties配置
修改broker.id分别为 1 2
修改ip为对应节点ip

在这里插入图片描述
在这里插入图片描述
8. 在node1节点上执行kafka-all.sh脚本,启动kafka集群
执行命令:kafka-all.sh start
在这里插入图片描述

9. 设置kafka服务自启动,注意:在 node1,2,3 上完成
(1) 进入到 /etc/rc.d/init.d目录下,创建一个 kafkaCluster 脚本,命令:vi /etc/rc.d/init.d/kafkaCluster

#! /bin/bash
#chkconfig:  345 93 88
#description: kafka cluster node1 node2 node3
#processname:kafka_cluster
# Kafka代理节点地址
hosts=(node1 node2 node3)
# 打印启动分布式脚本信息
mill=`date "+%N"`
tdate=`date "+%Y-%m-%d %H:%M:%S,${mill:0:3}"`

echo [$tdate] INFO [Kafka Cluster] begins to execute the $1 operation.

# 执行分布式开启命令	
function start()
{
	for i in ${hosts[@]}
		do
			smill=`date "+%N"`
			stdate=`date "+%Y-%m-%d %H:%M:%S,${smill:0:3}"`
			ssh root@$i "source /etc/profile;echo [$stdate] INFO [Kafka Broker $i] begins to execute the startup operation.;kafka-server-start.sh $KAFKA_HOME/config/server.properties>/dev/null" &
			sleep 1
		done
}	

# 执行分布式关闭命令	
function stop()
{
	for i in ${hosts[@]}
		do
			smill=`date "+%N"`
			stdate=`date "+%Y-%m-%d %H:%M:%S,${smill:0:3}"`
			ssh root@$i "source /etc/profile;echo [$stdate] INFO [Kafka Broker $i] begins to execute the shutdown operation.;kafka-server-stop.sh>/dev/null;" &
			sleep 1
		done
}

# 查看Kafka代理节点状态
function status()
{
	for i in ${hosts[@]}
		do
			smill=`date "+%N"`
			stdate=`date "+%Y-%m-%d %H:%M:%S,${smill:0:3}"`
			ssh root@$i "source /etc/profile;echo [$stdate] INFO [Kafka Broker $i] status message is :;jps | grep Kafka;" &
			sleep 1
		done
}

# 判断输入的Kafka命令参数是否有效
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|status}"
        RETVAL=1
esac


(2) 粘贴保存后,修改执行权限
进入目录命令:cd /etc/rc.d/init.d
修改执行权限:chmod +x kafkaCluster
在这里插入图片描述
(3) 加入到 chkconfig 服务列表中
加入列表命令:chkconfig --add kafkaCluster
查看列表命令:chkconfig --list
在这里插入图片描述
(4) 以后就可以用以下命令启动服务了
启动命令:service kafkaCluster start

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的脚本,可以快速在 CentOS 7 上搭建 Hadoop 集群: ```bash #!/bin/bash # Hadoop Cluster Setup Script # Set hostname echo "Setting hostname..." hostnamectl set-hostname hadoop-master echo "127.0.0.1 hadoop-master" >> /etc/hosts # Install Java echo "Installing Java..." yum install -y java-1.8.0-openjdk-devel # Download Hadoop echo "Downloading Hadoop..." curl -O https://apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz # Extract Hadoop echo "Extracting Hadoop..." tar -xzvf hadoop-3.3.1.tar.gz mv hadoop-3.3.1 /usr/local/hadoop rm hadoop-3.3.1.tar.gz # Configure Hadoop echo "Configuring Hadoop..." echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/profile echo "export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin" >> /etc/profile source /etc/profile # Configure Hadoop Cluster echo "Configuring Hadoop Cluster..." cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml sed -i 's/localhost/hadoop-master/' /usr/local/hadoop/etc/hadoop/core-site.xml sed -i 's/localhost/hadoop-master/' /usr/local/hadoop/etc/hadoop/hdfs-site.xml sed -i 's/localhost/hadoop-master/' /usr/local/hadoop/etc/hadoop/yarn-site.xml echo "export HDFS_NAMENODE_USER=root" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export HDFS_DATANODE_USER=root" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export HDFS_SECONDARYNAMENODE_USER=root" >> /usr/local/hadoop/etc/hadoop/hadoop-env.sh echo "export YARN_RESOURCEMANAGER_USER=root" >> /usr/local/hadoop/etc/hadoop/yarn-env.sh echo "export YARN_NODEMANAGER_USER=root" >> /usr/local/hadoop/etc/hadoop/yarn-env.sh # Start Hadoop Cluster echo "Starting Hadoop Cluster..." /usr/local/hadoop/sbin/start-dfs.sh /usr/local/hadoop/sbin/start-yarn.sh # Configure Hadoop Cluster on other nodes echo "Configure Hadoop Cluster on other nodes..." echo "hadoop-slave1" >> /etc/hosts echo "hadoop-slave2" >> /etc/hosts # Done echo "Hadoop Cluster Setup Complete!" ``` 这个脚本包括了以下步骤: 1. 设置主机名和 hosts 文件。 2. 安装 Java。 3. 下载和解压 Hadoop。 4. 配置 Hadoop。 5. 配置 Hadoop 集群。 6. 启动 Hadoop 集群。 7. 在其他节点上配置 Hadoop 集群。 可以将这个脚本保存为 `setup-hadoop.sh`,并在每个节点上运行它。注意,在运行脚本之前,需要将每个节点的 hostname 和 IP 地址添加到 `/etc/hosts` 文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值