前提条件: 以安装好java环境及zookeeper环境
安装
以集群模式,3台为例
上传解压更名
tar -zxvf kafka_2.11-1.1.1.tgz -C /usr/local
cd /usr/local
mv kafka_2.11-1.1.1/ kafka
配置环境变量
vim /etc/profile
# kafka environment
export KAFKA_HOME=/usr/local/kafka
export PATH=$KAFKA_HOME/bin:$PATH
修改配置文件
//修改$KAFKA_HOME/config/server.properties
broker.id=11 ## 当前kafka实例的id,必须为整数,一个集群中不可重复
log.dirs=/opt/data/kafka ## 生产到kafka中的数据存储的目录,目录需要手动创建
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181/kafka ## kafka数据在zk中的存储目录
分发到其他两台机器
[root@mypc01 local]# scp -r kafka root@mypc02:/usr/local
[root@mypc01 local]# scp -r kafka root@mypc03:/usr/local
同时修改其他两台机器的server.properties
文件
broker.id分别修改为12 13
启动,需要首先启动zookeeper,之后再同时启动3台kafka
kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
启动后会有一个kafka进程,可以用jps
命令查看
kafka在zookeeper中的目录结构
/kafka
/cluster
/id {"version":"1","id":"Pks8sWZUHqyVGQ5OA"} ---》代表的是一个kafka集群包含集群的版本,和集群的id
/controller {"version":1,"brokerid":11,"timestamp":"1564976668049"} -->controller是kafka中非常重要的一个角色,意为控制器,控制partition的leader选举,topic的crud操作。brokerid意为由其id对应的broker承担controller的角色。
/controller_epoch 2 代表的是controller的纪元,换句话说是代表controller的更迭,每当controller的brokerid更换一次,controller_epoch就+1.
/brokers
/ids [11, 12, 13] --->存放当前kafka的broker实例列表
/topics [hadoop, __consumer_offsets] ---->当前kafka中的topic列表
/seqid 系统的序列id
/consumers --->老版本用于存储kafka消费者的信息,主要保存对应的offset,新版本中基本不用,此时用户的消费信息,保存在一个系统的topic中:__consumer_offsets
/config --->存放配置信息