一、总体目标
版本: zookeeper3.4.14
二、安装kafka之前,首先安装zookeeper
2.1 zookeeper下载地址:
(本次采用3.4.5, cdh版本, 版本不同很容易出错)
http://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.14.tar.gz
2.2配置环境变量 vi ~/.bash_profile
// vi ~/.bash_profile
export ZK_HOME=/home/peng/peng/app/zookeeper-3.4.14
export PATH=$ZK_HOME/bin:$PATH
2.3 拷贝一份配置文件 cp zoo_sample.cfg zoo.cfg
/**
*这里只需要更改数据存储的位置, tmp目录开机清空,更改如下
*/
#dataDir=/tmp/zookeeper
dataDir=/home/peng/peng/data/zookeper
2.4 启动
// 启动
./zkServer.sh start
// 启动链接客户端
./zkCli.sh
三、下载安装kafka - 单节点配置
3.1 下载
3.2 解压,配置环境变量
tar -zxvf kafka_2.11-0.9.0.0.tgz -C /home/peng/peng/app/
export KAFKA_HOME=/home/peng/peng/app/kafka_2.11-0.9.0.0
export PATH=$KAFKA_HOME/bin:$PATH
vi ~/.bash_profile
source ~/.bash_profile
3.3 修改配置文件 vi server.properties
broker.id=0
listeners=PLAINTEXT://:9092
# listeners=localhost://:9092
host.name=localhost
log.dirs=/home/peng/peng/data/kafka-logs
zookeeper.connect=localhost:2181
3.4启动
./kafka-server-start.sh $KAFKA_HOME/config/server.properties
3.5创建主题 - zookeeper打交道
//kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic peng_topic
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic peng_topic
3.6 查看zookeeper下面所有的挂载主题
kafka-topics.sh --list --zookeeper localhost:2181
3.7生产,发送 一个消息
kafka-console-producer.sh --broker-list localhost:9092 --topic peng_topic
3.8启动一个消费者
// kafka-console-consumer.sh --zookeeper localhost:9092 --topic peng_topic--from-beginning
kafka-console-consumer.sh --zookeeper localhost:2181 --topic peng_topic --from-beginning
备注: 老师的笔记流程 - 单节点部署
四、 单节点部署多个broker
简单的来说就是拷贝多个 server.properties, 分别配置不同的端口,IP 等。
4.1 . 配置配置文件中的这三个属性
/**
* 之前一定要启动zookeeper
* 一定要让环境变量生效
*/
// 直接拷贝多份配置文件即可
server.properties
broker.id = 0
listeners=PLATNTEXT://9092
log.dirs = /home/peng/peng/data/kafka-logs
cp server.properties server1.properties
broker.id = 1
listeners=PLATNTEXT://9093
log.dirs = /home/peng/peng/data/kafka-logs-1
[peng@bogon config]$ cp server.properties server2.properties
broker.id = 2
listeners=PLATNTEXT://9094
log.dirs = /home/peng/peng/data/kafka-logs-2
[peng@bogon config]$ cp server.properties server3.properties
broker.id = 3
listeners=PLATNTEXT://9095
log.dirs = /home/peng/peng/data/kafka-logs-3
4.2.启动,后台运行
[peng@bogon config]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server1.properties &
[peng@bogon config]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server2.properties &
[peng@bogon config]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server3.properties &
/**
* 查看进程详细信息
*
*21162 -- main class information unavailable server1有问题
*/
[peng@bogon config]$ jps -m
20787 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server3.properties
20695 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server2.properties
20542 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server.properties
4.3 创建一个主题(三副本方式)
// 创建一个主题
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topics
4.4 查看所有的主题
kafka-topics.sh --list --zookeeper localhost:2181
/**
* 查看副本的详细信息
*/
kafka-topics.sh --describe --zookeeper localhost:2181
Topic:my-replicated-topics PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topics Partition: 0 Leader: 0 Replicas: 0,2,3Isr: 0,2,3
Topic:peng_topic PartitionCount:1 ReplicationFactor:1 Configs:
Topic: peng_topic Partition: 0 Leader: 0 Replicas: 0 Isr: 0
4.5 生产者 - 发送消息测试一下
kafka-console-producer.sh --broker-list localhost:9094 localhost:9095 localhost:9092 --topic my-replicated-topic
4.6 消费者 - 消费消息
kafka-console-consumer.sh --zookeeper locahost:2181 --topic my-replicated-topic
五、多机器多节点部署和单机器多broker部署相似,有条件可试试
六、kafka容错机制 测试- 杀死其中一个节点系统正常运行
// 强制杀死进程
22320 Jps -m
20787 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server3.properties
20695 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server2.properties
21162 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server1.properties
20542 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server.properties
[peng@bogon config]$ kill -9 21162
[peng@bogon config]$ jps -m
20787 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server3.properties
20695 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server2.properties
20542 Kafka /home/peng/peng/app/kafka_2.11-0.9.0.0/config/server.properties
/**
* 杀死进程之后 查看副本的详细信息
*/
kafka-topics.sh --describe --zookeeper localhost:2181