Kafka-2.11-0.10.2.0的安装

安装环境:

centos7

hadoop-2.7.3

zookeeper-3.4.10

kafka-2.11-0.10.2.0 在node1, node2, node3节点上安装

安装kafka之前必须安装zookeeper,如果没有安装zookeeper详细见https://blog.csdn.net/qq_43605654/article/details/90750416

 

一、Kafka简介

1.简介:

Kafka是分布式发布-订阅消息系统。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。

2.应用场景:

日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。

用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。

运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。

流式处理:比如接入到spark streaming和storm中。

3.特点

– 消息持久化:通过O(1)的磁盘数据结构提供数据的持久化,并且支持数据备份防止数据丢失。其快速读写的性能得益于预读和后写两个特性。【 预读:提前把下条记录读到内存中。后写:一次写入多个操作,要求必须是顺序读写,这种操作系统级别的,对磁盘的一个顺序访问要比对内存随机访问还要快】

– 高吞吐量:每秒百万级的消息读写,每秒可以处理上百兆的数据

– 分布式:扩展能力强

– 多客户端支持:java、 php、 python、 c++ ……

– 实时性:生产者生产的message立即被消费者可见(message是kafka的基本单位)

– 高并发:支持数千个客户端同时读写

 

二、Kafka安装

node1节点上的操作

1.解压并重命名

tar -zxvf kafka_2.11-0.10.2.0.tgz

mv kafka_2.11-0.10.2.0 kafka-2.11

 

2.添加环境变量

vi /etc/profile

export KAFKA_HOME=/home/hadoop/kafka-2.11

export PATH=$PATH:$KAFKA_HOME/bin

更新环境变量

source /etc/profile

 

3.创建日志目录文件

cd /home/hadoop/kafka-2.11/

mkdir logs

 

4.编辑kafka配置文件

进入kafka安装目录下的conf目录

cd /home/hadoop/kafka-2.11/conf

vi server.properties

修改broker.id

broker.id=1

配置监听listeners

listeners=PLAINTEXT://node1:9092

修改日志存放位置log.dirs

log.dirs=/home/hadoop/kafka-2.11/logs

配置zookeeper连接zookeeper.connect

zookeeper.connect=node1:2181,node2:2181,node3:2181

 

5.将kafka发送到其它节点(从node1发送给node2和node3)

scp -r /home/hadoop/kafka-2.11 root@node2:/home/hadoop/

scp -r /home/hadoop/kafka-2.11 root@node3:/home/hadoop/

 

在node2,node3节点进行操作

6.修改其它节点的server.properties配置文件

修改broker.id以及listeners(每个节点的broker.id都应该不一样且是正整数,在此集群中唯一标识此节点,目的是如果节点的ip改变了,通过broker.id还可以找到对应的节点,从而保证了进程正常运行)

node2:

broker.id=2

listeners=PLAINTEXT://node2:9092

node3:

broker.id=3

listeners=PLAINTEXT://node3:9092

 

三、测试

 

1.开启zookeeper集群(在这里我使用的是自己编写的开启脚本,开启所有zookeeper,可以参考https://blog.csdn.net/qq_43605654/article/details/90750663)

zkStart-all.sh

如果没有写脚本则用命令 zkServer.sh start 一个个启动zookeeper

 

2.开启kafka进程

分别进入node1,node2,node3的kafka-2.11目录下(也可以用绝对路径开启,不过会比较长)

使用命令bin/kafka-server-start.sh  conf/server.properties  &  

参数conf/server.properties是指以此配置开启进程,最后的&表示在后台运行该进程

 

3.通过jps查看进程(这里使用了脚本)

jps-all.sh

可以看到安装kafka的节点(node1,node2,node3)有kafka进程(截图的时候开着hadoop集群,所以有hadoop相关的进程,kafka只依赖于zookeeper,因此开启kafka前必须运行zookeeper)

 

4.创建一个Kafka的topic(主题)进行测试

kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1 --partitions 1 --topic test

参数的含义:

--create                             意思是该操作是创建操作

--zookeeper node1:2181  指定该主题所在的zookeeper地址(可以指定多个zookeeper节点)

--replication-factor 1         指定副本数为1

--partitions 1                     指定分区数为1

--topic test                        指定创建的主题名为test

查看创建的topic

kafka-topics.sh --list -zookeeper node1:2181

参数的含义:

--list  -zookeeper node1:2181               指定查看的zookeeper节点,在此为查看node1节点上的主题

 

5.开启生产者消费者窗口进行测试

node1:生产者

kafka-console-producer.sh --broker-list node1:9092 --topic test

参数的含义:

--broker-list node1:9092     指定生产者服务器使用的节点(决定了数据将会去哪里)

--topic test                          指定使用的主题

输入一些数据进行测试(生产者生产数据):

node2:消费者

kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning

参数的含义:

--bootstrap-server node1:9092   指定生产者服务器所在节点即broker-server所在的节点

--topic test                                   指定主题名字

--from-beginning                          指定消费类型:从头消费

可以看到控制台输出了从生产者生产的数据(即kafka消费者消费了数据):

 

6.关闭

生产者消费者进程可以直接通过 Ctrl+C 结束或者通过 kill 进程号 杀死该进程

kafka集群关闭方式:

kafka-server-stop.sh

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值