单节点KAFKA的安装部署

项目背景:
    项目需要为使用增量数据同步工具,接入大数据平台,实现增量同步功能。根据公司要求kafka版本为0.11
    本文搭建的是单节点的kafka。
下载地址
一、测试环境信息(个人虚拟机)
[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].
hello world
20180517












来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31427447/viewspace-2154692/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31427447/viewspace-2154692/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值