Apache Kafka 概述 在大数据中,使用了大量的数据。
关于数据,我们有两个主要挑战。第一个挑战是如何收集大量的数据,第二个挑战是分析收集的数据。 为了克服这些挑战,您必须需要一个消息系统。
Kafka专为分布式高吞吐量系统而设计。 Kafka往往工作得很好,作为一个更传统的消息代理的替代品。
与其他消息传递系统相比,Kafka具有更好的吞吐量,内置分区,复制和固有的容错能力,这使得它非常适合大规模消息处理应用程序。
什么是消息系统? 消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它。
分布式消息传递基于可靠消息队列的概念。 消息在客户端应用程序和消息传递系统之间异步排队。 有两种类型的消息模式可用 -
一种是点对点,另一种是发布 - 订阅(pub-sub)消息系统。 大多数消息模式遵循 pub-sub
kafka官网:http://kafka.apache.org/
使用安装包版本:
kafka_2.11-1.0.0
下载地址https://mvnrepository.com/artifact/org.apache.kafka/kafka_2.11/1.0.0
已经安装 hadoop-2.6.0.tar ,zookeeper-3.4.5.tar
虚拟机 | IP |
---|---|
master | 192.168.176.41 |
slave1 | 192.168.176.42 |
slave2 | 192.168.176.43 |
一、安装kafka
1、将kafka解压至指定目录
[root@master ~]# tar ~/app/kafka_2.11-1.0.0.tgz -C /usr/local/src/
2、修改server.properties
进入/usr/local/src/kafka_2.11-1.0.0/config
[root@master config]# pwd
/usr/local/src/kafka_2.11-1.0.0/config
[root@master config]# vi server.properties
#在log.retention.hours=168 下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=master:12181,slave1:12181,slave2:12181/kafka-logs
[root@master config]# mkdir kafka-logs
3、将kafka分发给其余节点
[root@master config]# scp -r /usr/local/src/kafka_2.11-1.0.0/ slave1:/usr/local/src/
[root@master config]# scp -r /usr/local/src/kafka_2.11-1.0.0/ slave2:/usr/local/src/
二、启动kafka
1、启动ZooKeeper
master 机器
[root@master bin]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/src/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@master kafka_2.11-1.0.0]# pwd
/usr/local/src/kafka_2.11-1.0.0
[root@master kafka_2.11-1.0.0]# zkServer.sh start
slave1 机器
[root@ slave1 kafka_2.11-1.0.0]# zkServer.sh start
slave2 机器 第二种启动方法
[root@slave2 kafka_2.11-1.0.0]# bin/zookeeper-server-start.sh config/zookeeper.properties
2、启动kafka
进入 kafka目录 /usr/local/src/kafka_2.11-1.0.0
2.1、master 启动
[root@master kafka_2.11-1.0.0]# pwd
/usr/local/src/kafka_2.11-1.0.0
[root@master kafka_2.11-1.0.0]# ./bin/kafka-server-start.sh -daemon ./config/server.properties
[root@master kafka_2.11-1.0.0]# jps
1589 QuorumPeerMain
1926 Kafka
1963 Jps
2.2、slave1 启动
[root@master kafka_2.11-1.0.0]# ssh slave1
Last login: Mon Dec 30 14:01:56 2019 from master
[root@slave1 ~]# cd /usr/local/src/kafka_2.11-1.0.0/
[root@slave1 kafka_2.11-1.0.0]# ./bin/kafka-server-start.sh -daemon ./config/server.properties
[root@slave1 kafka_2.11-1.0.0]# jps
2019 Jps
1982 Kafka
1631 QuorumPeerMain
2.3、slave2 启动
[root@slave1 kafka_2.11-1.0.0]# ssh slave2
Last login: Mon Dec 30 14:02:18 2019 from slave1
[root@slave2 ~]# cd /usr/local/src/kafka_2.11-1.0.0/
[root@slave2 kafka_2.11-1.0.0]# ./bin/kafka-server-start.sh -daemon ./config/server.properties
[root@slave2 kafka_2.11-1.0.0]# jps
1635 QuorumPeerMain
1975 Kafka
2012 Jps
[root@slave2 kafka_2.11-1.0.0]#
六、简单验证
[root@master bin]# kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic hello
Created topic "hello".
解释
–replication-factor 1 #复制1份
–partitions 1 #创建1个分区
–topic #主题为hello
[root@master kafka_2.11-1.0.0]# bin/kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic hello-world
Error while executing topic command : Replication factor: 1 larger than available brokers: 0.
[2019-12-31 21:58:58,491] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0.
(kafka.admin.TopicCommand$)
问题解决参考连接
https://blog.csdn.net/u010805617/article/details/51265193
1、发送消息
[root@master bin]# kafka-console-producer.sh --broker-list slave1:9092 --topic test1
>hello
>wrold
2、接收消息
[root@master bin]# kafka-console-consumer.sh --zookeeper master:2181 --topic test1 --from-beginning
hello
wrold
来源:CSDN
作者:软件手
链接:https://blog.csdn.net/weixin_44593925/article/details/103788744