本篇文章给大家分享的是有关单节点KAFKA的安装部署是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联成立于2013年,先为淮北等服务建站,淮北等地企业,进行企业商务咨询服务。为淮北企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。项目背景:
项目需要为使用增量数据同步工具,接入大数据平台,实现增量同步功能。根据公司要求kafka版本为0.11
本文搭建的是单节点的kafka。
下载地址
http://kafka.apache.org/downloads.html
一、测试环境信息(个人虚拟机)
[root@zrd soft]# uname -a
Linux zrd 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@zrd soft]# free -h
total used free shared buffers cached
Mem: 1.8G 448M 1.4G 1.1M 26M 204M
-/+ buffers/cache: 216M 1.6G
Swap: 1.0G 0B 1.0G
[root@zrd soft]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 29G 11G 18G 39% /
tmpfs 932M 72K 932M 1% /dev/shm
/dev/mapper/vg_test-lv_test
21G 211M 20G 2% /data
/CentOS-6.9-x86_64-LiveDVD.iso
1.9G 1.9G 0 100% /yumdir
[root@zrd soft]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
二、kafka简介
kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
2.1kafka目录介绍
/bin 操作kafka的可执行脚本,还包含windows下脚本
/config 配置文件所在目录
/libs 依赖库目录
/logs 日志数据目录,目录kafka把server端日志分为5种类型,分为:server,request,state,log-cleaner,controller
2.2kafka名词解释
producer:生产者。
consumer:消费者。
topic: 消息以topic为类别记录,Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic)。
broker:以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker;消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。
每个消息(也叫作record记录,也被称为消息)是由一个key,一个value和时间戳构成。
2.3kafka有四个核心API介绍
应用程序使用producer API发布消息到1个或多个topic中。
应用程序使用consumer API来订阅一个或多个topic,并处理产生的消息。
应用程序使用streams API充当一个流处理器,从1个或多个topic消费输入流,并产生一个输出流到1个或多个topic,有效地将输入流转换到输出流。
connector API允许构建或运行可重复使用的生产者或消费者,将topic链接到现有的应用程序或数据系统。
2.4kafka应用场景
构建实时的流数据管道,可靠地获取系统和应用程序之间的数据。
构建实时流的应用程序,对数据流进行转换或反应。
2.5kafka消费者组
什么是consumer group? 一言以蔽之,consumer group是kafka提供的可扩展且具有容错性的消费者机制。既然是一个组,那么组内必然可以有多个消费者或消费者实例(consumer instance),它们共享一个公共的ID,即group ID。组内的所有消费者协调在一起来消费订阅主题(subscribed topics)的所有分区(partition)。当然,每个分区只能由同一个消费组内的一个consumer来消费。
三个特性:
1consumer group下可以有一个或多个consumer instance,consumer instance可以是一个进程,也可以是一个线程
2group.id是一个字符串,唯一标识一个consumer group
3consumer group下订阅的topic下的每个分区只能分配给某个group下的一个consumer(当然该分区还可以被分配给其他group)
三、安装步骤
3.1安装jdk(自行安装)
3.2安装zookeeper(单节点)
[root@zrd soft]# tar -zxvf zookeeper-3.4.10.tar.gz
在主目录下创建data和logs两个目录用于存储数据和日志
在conf目录下新建zoo.cfg文件,写入以下内容保存
tickTime=2000
dataDir=/soft/zookeeper-3.4.10/data
dataLogDir=/soft/zookeeper-3.4.10/logs
clientPort=2181
进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)别执行:
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status
touch /soft/zookeeper-3.4.10/data/myid
echo '1' > data/myid
3.2安装kafka
3.2.1解压包
tar -zxvf kafka_2.11-0.11.0.2
3.2.2配置
[root@zrd config]# ls
connect-console-sink.properties connect-log4j.properties server.properties
connect-console-source.properties connect-standalone.properties tools-log4j.properties
connect-distributed.properties consumer.properties zookeeper.properties
connect-file-sink.properties log4j.properties
connect-file-source.properties producer.properties
[root@zrd config]# pwd
/soft/kafka_2.11-0.11.0.2/config
//kafka最为重要三个配置依次为:broker.id、log.dir、zookeeper.connect,kafka server端config/server.properties参数说明和解释如下:https://blog.csdn.net/lizhitao/article/details/25667831
[root@zrd config]# vim server.properties
broker.id=0
delete.topic.enable=true
listeners=PLAINTEXT://192.168.15.131:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/data
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.15.131:2181,192.168.15.132:2181,192.168.15.133:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
启动进程
./kafka-server-start.sh ./kafka/config/server.properties
进行测试:创建topic --test
[root@zrd bin]# jps
4729 Kafka
3049 QuorumPeerMain
5019 Jps
4238 QuorumPeerMain
[root@zrd bin]# ./kafka-topics.sh --create --zookeeper 192.168.6.105:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
另一个窗口:列出已创建的topic列表
[root@zrd bin]# ./kafka-topics.sh --list --zookeeper 192.168.6.105:2181
test
模拟客户端去发送消息
[root@zrd bin]# ./kafka-console-producer.sh --broker-list 192.168.6.105:9092 --topic r7_test
>hello world
[2018-05-17 15:26:39,412] WARN Error while fetching metadata with correlation id 1 : {r7_test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
>20180517
模拟客户端去接受消息
[root@zrd bin]# ./kafka-console-consumer.sh --zookeeper 192.168.6.105:2181 --from-beginning --topic r7_test
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
以上就是单节点KAFKA的安装部署是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联-成都网站建设公司行业资讯频道。