zookeeper与kafka安装

zookeeper与kafka安装

2017年11月21日 17:13:33 君君要上天 阅读数:377

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010837612/article/details/78594702

AMQP协议

kafka是基于仿AMQP协议开发的,AMQP协议模型如下:

zookeeper与kafka安装_第1张图片

基本概念:

  1. 消费者(consumer):从消息队列中请求消息的客户端应用程序
  2. 生产者(producer):想broker发布消息的客户端应用程序
  3. AMQP服务端(broker):用来接收生产者发送的消息并将这些消息路由给服务器中的队列
  4. 主题(topic):类似新闻中的分类概念,在实际开发中通常一个业务一个主题
  5. 分区(partition):一个topic中的消息数据按照多个分区组织,分区是kafka消息队列中组织的最小单位,一个分区可以看做是一个FIFO的队列

Zookeeper集群搭建

软件环境:

  • linux服务器需要奇数台(1台,或3台,5台)
  • java jdk
  • zookeeper

首先我们需要安装jdk,请参考Linux安装JDK

下载zookeeper

下载zookeeper

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -zxvf zookeeper-3.4.10.tar.gz 
mv zookeeper-3.4.10 /usr/local/zookeeper
cd /usr/local/zookeeper
  • 1
  • 2
  • 3
  • 4

配置

在zookeeper的conf目录中,有一个官方提供的配置文件模板zoo_sample.cfg,我们将复制一份,重命名为zoo.cfg,并修改它:

tickTime=2000

initLimit=10

syncLimit=5
#快照数据文件目录
dataDir=/data/zookeeper/zkdata
#日志文件所在目录
dataLogDir=/data/zookeeper/zkdatalog

clientPort=2181
#集群服务器列表,几台服务器集群就配几个,此处的1,2,3是服务器对应的id
server.1=10.168.168.xx:2888:13888
#server.2=10.168.168.xx:2888:13888
#server.3=10.168.168.xx:2888:13888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

配置文件中的端口可以随意更改,不冲突即可。

手动创建dataDirdataLogDir

root@ubuntu:/# mkdir -p /data/zookeeper/zkdata
root@ubuntu:/# mkdir -p /data/zookeeper/zkdatalog
  • 1
  • 2

进入刚刚配置的dataDir中,将配置文件中配置的server的id写入到myid文件中,每台服务器都执行这个操作,id和服务器不能对应错

echo 1 > myid
  • 1

启动

进入zookeeper的bin目录中,有一个zkServer.sh目录,用于管理zookeeper

Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
  • 1

所有服务器使用该命令启动:

./zkServer.sh start
  • 1

清理文件

在上面配置的/data/zookeeper/zkdata目录,将来会产生大量的快照文件,需要我们定时去清除旧的文件,官方也对此做出了说明官方链接:
这里写图片描述

其实官方已经为我们提供了一个清理旧文件的脚本,位于zookeeper的bin目录下zkCleanup.sh,定时执行即可,例如:

./zkCleanup.sh -n 3
  • 1

kafka集群搭建

下载kafka

注意,要下载二进制包,不要下载源码

https://archive.apache.org/dist/kafka/0.8.2.0/kafka_2.9.2-0.8.2.0.tgz
  • 1

配置

解压kafka后,进入config目录,修改server.properties 配置文件,主要修改以下几项:

#给当前服务器指定一个id,你的多台服务器的这个值要设置成不一样的
broker.id=0

#日志文件所在目录
log.dirs=/data/kafka/logs/

#每个topic的分区数,可改可不改
num.partitions=1 

#zookeeper集群的地址和端口,ip地址要和上面zookeeper配置的server.1=10.168.168.xx一致,端口号和zookeeper配置文件中的clientPort一致
zookeeper.connect=10.168.168.xx:2181,10.168.168.xx:2181,10.168.168.xx:2181
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

启动

cd /usr/local/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties
  • 1
  • 2

启动之后,我们可以使用一些命令来测试一下

创建主题

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

查看主题列表

bin/kafka-topics.sh --list --zookeeper localhost:2181
  • 1

其他命令参考官方网站

你可能感兴趣的:(zookeeper与kafka安装)