打开浏览器,输入网址: http://kafka.apache.org/downloads.html。
每台机器的环境:CentOs 6.5 ,Java 1.8 ,kafka2.11自带Zookeeper。
下载完成后,打开终端,在命令行输入 cd /Download,然后输入ls,可以看到下载kafka压缩包,
在命令行输入:
cp kafka_2.11-2.1.0.tgz /usr/local/ 拷贝到该文件夹下
cd /usr/local/ 进入文件
tar -zxvf kafka_2.11-2.1.0.tgz 解压压缩包
rm -rf kafka_2.11-2.1.0.tgz删除压缩包
mv kafka_2.11.0.10.0.1
① 每台机器的环境:CentOs 6.5,Java 1.8,kafka2.11自带(Zookeeper)
② 三台虚拟机的ip地址为:192.168.0.173,192.168.0.174,192.168.0.176
cd /usr/local/kafka/kafka_2.11.0.10.0.1/
mkdir log 创建日志文件夹
cd log
mkdir kafka
mkdir zookeeper
cd ..
mkdir zookeeper 创建zookeeper文件
cd zookeeper
创建myid文件,进入/usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper,创建myid文件,将三个服务器上的myid文件分别写入1,2,3。myid是zk集群用来发现彼此的标识,必须创建,且不能相同。
vim myid 输入1 保存。
cd ..
cd config
直接使用kafka自带的zookeeper建立zk集群,修改zookeeper.properties文件。
vim zookeeper.propertics修改配置:
dataDir=/usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper
dataLogDir=/usr/local/kafka/kafka_2.11.0.10.0.1/log/zookeeper
clientPort=2182
maxClientCnxns=100
ticketTime=2000
initLimit=10
syncLimit=5
server.1=192.168.0.173:2888:3888
server.2=192.168.0.174:2888:3888
server.3=192.168.0.176:2888:3888
Esc:wq保存。
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
三个机器上的zookeeper.properties文件配置相同,需要注意的是日志保存的路径,不会自动生成,需要自己手动建立相关的路径, dataLogDir是我自己加的,日志文件太多,把日志文件区分开。
进入kafka目录 执行启动zookeeper命令:
./bin/zookeeper-server-start.sh config/zookeeper.properties &
三台机器都执行启动命令,查看zookeeper的日志文件,没有报错就说明zookeeper集群启动成功了。
搭建kafka集群,修改server.properties配置文件:
vim server.properties
broker.id = 0
port = 9092
hostname=192.168.0.173
log.dirs=/usr/local/kafka/kafka_2.11.0.10.0.1/log/kafka
zookeeper.connect=192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182
server.properties配置文件的修改主要在开头和结尾,中间保持默认配置即可;需要注意的点是broker.id的值三个节点要配置不同的值,分别配置为0,1,2;log.dirs必须保证目录存在,不会根据配置文件自动生成。
填入虚拟机名字: Kafka-cluster-2,点击clone。
点击clone,创建3号虚拟机。
填入虚拟机名字: Kafka-cluster-3,点击clone。
先修改Kafka-cluster-2虚拟机配置文件。打开终端输入:
cd /usr/local/kafka/kafka_2.11.0.10.0.1/config/
vim server.properties
broker.id=1
port = 9092
hostname=192.168.0.174
log.dirs=/usr/local/kafka/kafka_2.11.0.10.0.1/log/kafka
zookeeper.connect=192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182
将三个服务器上的myid文件分别写入1,2,3。myid是zk集群用来发现彼此的标识,必须创建,且不能相同。
vim /usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper/myid
修改里面的数字把1改成2。
再修改Kafka-cluster-3虚拟机配置文件。打开终端输入:
cd /usr/local/kafka/kafka_2.11.0.10.0.1/config/
vim server.properties
broker.id=2
bort = 9092
hostname=192.168.0.176
log.dirs=/usr/local/kafka/kafka_2.11.0.10.0.1/log/kafka
zookeeper.connect=192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182
将三个服务器上的myid文件分别写入1,2,3。myid是zk集群用来发现彼此的标识,必须创建,且不能相同。
vim /usr/local/kafka/kafka_2.11.0.10.0.1/zookeeper/myid
修改里面的数字把1改成3。
在jiqun---yin1终端中输入:cd /usr/local/kafka/kafka_2.11.0.10.0.1
输入./bin/zookeeper-server-start.sh config/zookeeper.properties &
同理在Kafka-cluster-2终端和Kafka-cluster-3终端中输入:cd /usr/local/kafka/kafka_2.11.0.10.0.1,然后输入:./bin/zookeeper-server-start.sh config/zookeeper.properties &
分别在jiqun---yin1、Kafka-cluster-2、Kafka-cluster-3虚拟机终端上输入指令:
bin/kafka-server-start.sh config/server.properties &
在jiqun---yin1上 kafka_2.11.0.10.0.1目录下终端中输入:
bin/kafka-topics.sh --create --zookeeper 192.168.0.173:2182, 192.168.0.174:2182, 192.168.0.176:2182 --replication-factor 3 --partitions 1 --topic mykafka
在jiqun---yin1 kafka_2.11.0.10.0.1目录下终端中输入:
bin/kafka-topics.sh --describe --zookeeper 192.168.0.155:2181,192.168.0.172:2181, 192.168.0.169:2181
如图所示,topic:mykafka已将创建成功。
在jiqun---yin1,kafka目录下终端中输入:
bin/kafka-console-producer.sh --broker-list 192.168.0.173:9092,192.168.0.174:9092,192.168.32.176:9092 –topic mykafka
在Kafka-cluster-2,kafka目录下终端中输入:bin/kafka-console-consumer.sh --zookeeper 192.168.0.173:2182, 192.168.0.173:2182, 192.168.0.173:2182 --topic mykafka --from-beginning