[TOC]
1 准备工作
- 为方便配置,此处使用主机名来代替IP,实际环境中还是IP较好
[root@h2 ~]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.1.131 h1
192.168.1.132 h2
192.168.1.133 h3
- java环境
[root@h2 ~]$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
[root@h2 installer]#
- Scala环境[可选,可用kafka自带的Scala]
- zookeeper集群环境
- 可以使用kafka自带的zookeeper,也可以搭建自己的zookeeper。
- 可以参考这篇文章:http://blog.csdn.net/hylexus/article/details/53352709
2 搭建集群
2.1 单节点配置
- 下载解压
$ wget http://mirrors.hust.edu.cn/apache/kafka/0.10.2.0/kafka_2.10-0.10.2.0.tgz
$ tar -zxvf kafka_2.10-0.10.2.0.tgz
- 配置
# 个人习惯将软件放在这里
$ mkdir /data/kafka-logs
$ mv kafka_2.10-0.10.2.0 /data/
# 编辑kafka配置文件
$ vim /soft/kafka_2.10-0.10.2.0/config/server.properties
# 按需更改以下内容
broker.id=1 # 相当于zookeeper中的myid
port=9092
host.name=h1
log.dirs=/data/kafka-logs
zookeeper.connect=h1:2181,h2:2181,h3:2181
default.replication.factor=2
replica.fetch.max.bytes=5048576
2.2 配置其他节点
- 复制到主机h2和h3
# 递归复制整个目录到h2
$ scp -r /soft/kafka_2.10-0.10.2.0/ root@h2:/soft/
# 在h2上建立kafka所需的数据目录
$ ssh root@h2 mkdir /data/kafka-logs
# 递归复制整个目录到h3
$ scp -r /soft/kafka_2.10-0.10.2.0/ root@h3:/soft/
# 在h3上建立kafka所需的数据目录
$ ssh root@h3 mkdir /data/kafka-logs
- 按需修改h2和h3上的配置文件
server.properties
内容即可
2.3 启动
- 分别启动三台机器上的kafka,以主机h1为例:
[root@h1 ~]$ cd /soft/kafka_2.10-0.10.2.0/
[root@h1 kafka_2.10-0.10.2.0]$ bin/kafka-server-start.sh -daemon config/server.properties
[root@h1 kafka_2.10-0.10.2.0]$ jps
7190 QuorumPeerMain # zk进程
8588 Jps
8558 Kafka # kafka的服务进程
2.4 测试
# 创建一个topic(主机h1)
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic tp-test
Created topic "tp-test".
# 查看topic列表
$ bin/kafka-topics.sh --list --zookeeper localhost:2181
tp-test
$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic tp-test
Topic:tp-test PartitionCount:1 ReplicationFactor:2 Configs:
Topic: tp-test Partition: 0 Leader: 3 Replicas: 3,1 Isr: 3,1
此时在主机h2和h3上分别查看,结果是一致的。