kafka入门01

kafka是一个高吞吐量得分布式发布订阅消息系统,解耦了消息生产者和消费者,与大数据框架spark配合使用,可以实现数据得实时流处理。 目前做大数据相关的项目,都会用到kafka消息系统。

目标:

1.了解mq消息系统概念

2.理解kafka消息系统的基本框架。

3.安装单机版kafka集群

4,使用shell命令创建topic.

5.使用consumer,Producer发送和接收信息。

kafka是一个分布式的流处理平台,具有以下特点:

1.支持消息的发布和订阅,类似rabbitmq,activemq等消息队列。

2.支持数据实时处理

3.能保证消息的可靠性投递

4.支持消息的持久化存储,并通过多副本分布式的存储方案来保证消息的容错。

5.高吞吐量,单broker可轻松处理数千分区以及每秒百万级的消息量。

kafaka的架构就是好比收发邮件, 小王发送邮件,发送邮件存储到邮件服务器,小李从邮件服务器中读取邮件。 类似的 生产者生产消息,将消息发送到kafka服务器,消费者消费消息。从kafaka服务器读取消息。这里的kafka服务器相当于一个中间人,用于存储生产者和消费者交互的数据(消息)

安装kafka集群

#切换到 opt 目录 cd /opt

#下载 Kafka 软件包到当前目录中 sudo wget https://labfile.oss.aliyuncs.com/courses/859/kafka_2.11-1.1.1.tgz

#查看目录 ll

接着运行如下命令:

# 解压 Kafka 软件包 sudo tar -zxvf kafka_2.11-1.1.1.tgz

# 重命名 Kafka 软件包文件夹名称为 kafka sudo mv kafka_2.11-1.1.1 kafka

#查看目录能看到kafka ll

依次接着运行如下命令:

#进入到kafka软件包的 config 目录 cd /opt/kafka/config

#列出当前 config 文件下的文件,可以看到有个 server.properties 文件 ll

#复制 server.properties 文件为 server-1.properties sudo cp server.properties server-1.properties

#复制 server.properties 文件为 server-2.properties sudo cp server.properties server-2.properties

到目前为止,我们下载了 Kafka 软件包,解压了 Kafka 软件包,重命名 Kafka 软件目录名称,复制了 Kafka 配置文件,下一步需要修改这三个配置文件,使其组成集群。

在修改这三个配置文件之前,我们需要先启动 zookeeper ,因为 Kafka 集群使用 Zookeeper 软件进行元数据信息的同步。在生产环境中,安装 Kafka 之前,需要先安装 Zookeeper。基于实验的目的,本次实验我们不再单独安装 Zookeeper 软件,而是使用 Kafka 自带的 Zookeeper 软件,从功能上讲,没有区别。

---- 依次运行如下命令,启动 Zookeeper:

#将kafka目录的执行权限授予当前用户 sudo chmod 777 -R /opt/kafka

#切换到启动 Zookeeper 命令所在的目录 cd /opt/kafka/bin

#使用上级目录中的 config 目录中的 zookeeper.perperties 配置文件,运行当前目录下的 zookeeper-server-start.sh 命令,启动 Kafka 软件包自带的 Zookeeper ./zookeeper-server-start.sh ../config/zookeeper.properties

不要关闭当前命令行终端,再打开一个新的命令行终端。

小技巧:

在运行命令前加 nohup ,并且在运行命令后加 & 。这样,这个命令就会以 Linux 后台进程运行,关闭当前命令行终端也无影响。

如运行:nohup ./zookeeper-server-start.sh ../config/server. properties & 命令,以后台进程启动 Zookeeper。

在新的命令行终端运行命令:

#查看当前运行的 java 进程,如果看到名称为 QuorumPeerMain 的进程,说明 Zookeeper 启动成功 jps

 下面在新的命令行终端中编辑 Kafka 的三个配置文件(server.properties、 server-1.properties、server-2.properties),修改文件名和修改内容说明如下:

依次运行如下命令: #切换到配置文件所在目录 cd /opt/kafka/config

# 编辑server-1.properties vi server-1.properties

# 编辑server-2.properties vi server-2.properties

到这一步,参数修改完成,下一步,启动kafka集群,上面我们看到的Kafka配置文件,每个配置文件对应Kafka集群中的一个节点。(称为broker)

依次执行命令,启动Kafka集群 # 切换到kafka命令所在目录 cd /opt/kafka/bin # 使用配置文件启动第一个kafka broker,注意:命令最后的&表示以后台进程启动,启动完成后,按回车回到命令行。

./kafka-server-start.sh ../config/server.properties &

./kafka-server-start.sh ../config/server-1.properties &

./kafka-server-start.sh ../config/server-2.properties &

运行完成后,在命令行中输入jps,可以看到三个broker的kafka

到目前位置,单机版的三个Broker的kafka集群,已经安装成功。 现在我们知道,生产者生产消息,将消息发送到kafka服务器(实际存储到了kafka中topic里面),消费者消费消息,从kafka服务器读取消息。这里,kafka服务器相当于一个中间人,用于存储生产者和消费者交互的数据消息。

在kafka集群中创建topic 使用shell命令在kafka集群中创建一个Topic,名称为myFirstTopic

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myFirstTopic

在/opt/kafka/bin目录下运行命令,查看Topic 创建是否成功 ./kafka-topics.sh --zookeeper localhost:2181 --list

在/opt/kafka/bin目录下运行命令,启动消息生产者,用于向topic发送消息 ./kafka-console-producer.sh --broker-list localhost:9092 --topic myFirstTopic

重新打开一个新的命令行终端,在/opt/kafka/bin目录下运行命令,启动消息消费者,用于向topic发送消息 ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic myFirstTopic

 在mac中同样适用

原文地址:https://www.cnblogs.com/hamish26/p/12957763.html