伪分布式搭建完毕之后,只要稍作修改就可以变为完全分布式。
环境准备
Linux:CentOS
Zookeeper:Kafak内置了zookeeper
Kafka: Scala 2.11-kafka_2.11-1.0.0.tgz(asc,sha512)
下载链接http://kafka.apache.org/downloads
以上伪分布式已经准备好,无须修改。
解压安装
同伪分布式:
将安装文件加压到/opt/目录
tar -zxf kafka_2.11-1.0.0.tgz /opt
配置文件
进入解压后的Kafka目录
cd /opt/kafka_2.11-1.0.0
以下以三台集群机器(bigdata01,bigdata02,bigdata03)部署为例:
1、配置config目录下的server.properties文件
broker.id=0 #集群内不能重复
listeners=PLAINTEXT://bigdata01:9092
#日志放入tmp目录
log.dirs=/tmp/kafka-logs
#zookeeper.connect=bigdata:2181
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
注:如果zookeeper有三台集群
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
2、Kafka完全分布式配置
将以上的整个文件夹拷贝到bigdata02,bigdata03机器上。
在bigdata01上kafka的安装目录上执行:
scp -r /opt/kafka_2.11-1.0.0/ bigdata02:/opt/kafka_2.11-1.0.0/
scp -r /opt/kafka_2.11-1.0.0/ bigdata03:/opt/kafka_2.11-1.0.0/
再修改配置文件config目录下的server.properties
在bigdata02上将broker.id设置为1,修改listeners地址
broker.id=1 #集群内不能重复
listeners=PLAINTEXT://bigdata02:9092
#日志放入tmp目录
log.dirs=/tmp/kafka-logs
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
在bigdata03上将broker.id设置为2,修改listeners地址
broker.id=2 #集群内不能重复
listeners=PLAINTEXT://bigdata03:9092
#日志放入tmp目录
log.dirs=/tmp/kafka-logs
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
服务启动
因为启动命令后界面都会打印相关日志,启动后要新起一个窗口进行后续命令
1、启动分布式集群的zookeeper
Kafka是通过zookeeper感知相关节点的。
在bigdata01机器执行:
cd /opt/zookeeper-3.4.12/bin
./zkServer.sh start
在bigdata02机器执行:
cd /opt/zookeeper-3.4.12/bin
./zkServer.sh start
在bigdata03机器执行:
cd /opt/zookeeper-3.4.12/bin
./zkServer.sh start
zookeeper启动完毕,可以用jps命令验证
2、启动Kafka服务
在bigdata01机器上启动如下:
cd /opt/kafka_2.11-1.1.0/bin
执行 ./kafka-server-start.sh 可以看到用法提示
USAGE: ./kafka-server-start.sh [-daemon] server.properties [–override property=value]*
./kafka-server-start.sh ../config/server.properties
在bigdata02,bigdata03机器上启动如上。
会打印相关日志,不报错即为成功,可以在三台机器上运行jps命令验证。
启动以后三个窗口不要关闭,关闭后进程将中断。