Kafka 搭建

什么是 Kafka?

Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,由 Scala 和 Java 编写。

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。

这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像 Hadoop 一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka 的目的是通过 Hadoop 的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

Zookeeper 搭建

Kafka 的分布式是基于 Zookeeper 之上的,所以必须先搭建好 Zookeeper。

参考我的这篇博客,其中提到了如何搭建 Zookeeper:HBase 分布式搭建

Kafka 搭建

  1. 解压压缩包
tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/

#更改名称
cd /opt/module/
mv kafka_2.11-2.4.1 kafka
  1. 添加环境变量

使用 vi 命令编辑文件 /etc/profile,在末尾添加如下配置,路径修改为自己的路径。

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
  1. 创建日志目录
cd $KAFKA_HOME
mkdir logs
  1. 配置文件

编辑 Kafka 配置文件目录下的 server.properties

cd $KAFKA_HOME/config/

设置 Kafka 的 id,必须保持唯一,其余机器的 id 按顺序进行修改。

添加支持删除 topic 功能:delete.topic.enable=true

在这里插入图片描述

修改数据的存储位置,路径按照自己的安装路径来。

在这里插入图片描述

修改 Zookeeper 的连接地址,我的设置如下:

zookeeper.connect=hadoop104:2181,hadoop105:2181,hadoop106:2181/kafka

在这里插入图片描述

修改完成后,保存并退出。

  1. 文件分发与同步

将 Kafka 分发到其它机器上,修改 Kafka 的 id,并同步环境变量。

scp -r kafka_2.11-2.4.1/ hadoop105:/opt/module/
scp -r kafka_2.11-2.4.1/ hadoop106:/opt/module/

scp -r /etc/profile hadoop105:/etc/profile
scp -r /etc/profile hadoop106:/etc/profile

环境变量分发完成后,注意在从机上使用 source /etc/profile 进行环境变量的刷新。

在从机上,分别在 $KAFKA_HOME/config/ 目录下,编辑 server.properties 文件,按顺序修改 Kafka 的 id

在这里插入图片描述
在这里插入图片描述

  1. Kafka 启动

Kafka 一般的启动命令为:

kafka-server-start.sh -daemon /opt/module/kafka/config/server-properties

显然,要在三台机器上都执行一遍比较复杂,所以,一般情况下都是通过自定义脚本进行启动。

首先,我们在主节点中进入 /bin 目录,创建 kf.sh 文件,在其中添加如下内容:

#!/bin/bash

case $1 in
"start"){
	for host in hadoop104 hadoop105 hadoop106
	do
		echo "正在启动 $host Kafka 服务"
		ssh $host "source /etc/profile;kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
	done
};;
"stop"){
	for host in hadoop104 hadoop105 hadoop106
	do
		echo "正在停止 $host Kafka 服务"
		ssh $host 'source /etc/profile;kafka-server-stop.sh stop'
	done
};;
*){
	echo "参数有误,请选择 【start】 或 【stop】!"
};;
esac

注意将其中的节点以及路径更换成自己的,然后使用 chmod 777 kf.sh 命令增加脚本执行权限。

先启动 Zookeeper! 然后运行命令 kf.sh start 进行群起。

成功启动后节点如下图所示:

在这里插入图片描述

  1. 在 Zookeeper 中查看。

进入 Zookeeper Cli 界面,查看节点。

zkCli.sh

ls /

ls /kafka

在这里插入图片描述

Kafka 搭建完成~

Kafka 基础指令

# 启动命令
kafka-server-start.sh config/server.properties

# 节点创建
kafka-topics.sh  --create  --zookeeper  localhost:2181 --replication-factor  1  --partitions  1  --topic  wordsendertest

# 查看当前服务器节点
kafka-topics.sh --bootstrap-server localhost:9092 --list

# 启动生产者
kafka-console-producer.sh --broker-list localhost:9092 --topic  wordsendertest

# 启动消费者
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic wordsendertest --from-beginning

# 删除节点
kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic wordsendertest
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以通过 Docker 来搭建 Kafka,步骤如下: 1. 在 Docker 中拉取 Kafka 镜像 ``` docker pull wurstmeister/kafka ``` 2. 创建一个 Docker 网络,方便容器之间的通信 ``` docker network create kafka-net ``` 3. 启动 Zookeeper 容器 ``` docker run -d --name zookeeper --network kafka-net -p 2181:2181 -e ZOOKEEPER_CLIENT_PORT=2181 wurstmeister/zookeeper ``` 4. 启动 Kafka 容器 ``` docker run -d --name kafka --network kafka-net -p 9092:9092 \ -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \ -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \ -e KAFKA_CREATE_TOPICS=test:1:1 \ wurstmeister/kafka ``` 其中,`KAFKA_ZOOKEEPER_CONNECT` 指定 Zookeeper 的地址,`KAFKA_ADVERTISED_LISTENERS` 指定 Kafka 的监听地址,`KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR` 指定 Kafka 内部使用的 topic 副本数量,`KAFKA_CREATE_TOPICS` 指定启动容器时创建的 topic。 5. 进入 Kafka 容器内 ``` docker exec -it kafka /bin/bash ``` 6. 创建一个示例 topic ``` /opt/kafka/bin/kafka-topics.sh --create --topic test --zookeeper zookeeper:2181 --partitions 1 --replication-factor 1 ``` 7. 测试 Kafka ``` /opt/kafka/bin/kafka-console-producer.sh --topic test --broker-list localhost:9092 ``` 在控制台输入一些消息,然后打开一个新的终端窗口,输入以下命令,从刚才的 topic 中读取消息: ``` /opt/kafka/bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning ``` 如果能够成功读取到之前输入的消息,则说明 Kafka 搭建成功了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

月亮给我抄代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值