1、 准备3台机器
server1 192.168.16.130
server2 192.168.16.131
server3 192.168.16.132
2、安装Zookeeper
第一步:下载Zookeeper摈弃解压
tar -zxvf zookeeper-3.4.13.tar.gz
第二步:修改zoo.cfg文件
第三步:修改Profile文件
vim /etc/profile
ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.10
JAVA_HOME=/usr/local/jdk1.8.0_131
JRE_HOME=/usr/local/jdk1.8.0_131/jre
export SCALA_HOME=/usr/local/scala-2.10.4
export KAFKA_HOME=/usr/local/kafka_2.9.1-0.8.2.2
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$ZOOKEEPER_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH ZOOKEEPER_HOME
#让环境变量生效
source /etc/profile
第四步:机器标记myid
echo "1" > /usr/local/userdata/zookeeper/data/myid
echo "2" > /usr/local/userdata/zookeeper/data/myid
echo "3" > /usr/local/userdata/zookeeper/data/myid
第五步:启动和关闭
#启动
zkServer.sh start
#关闭
zkServer.sh stop
3、安装scala
tar -zxvf scala-2.12.6.tgz
ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.10
JAVA_HOME=/usr/local/jdk1.8.0_131
JRE_HOME=/usr/local/jdk1.8.0_131/jre
export SCALA_HOME=/usr/local/scala-2.10.4
export KAFKA_HOME=/usr/local/kafka_2.9.1-0.8.2.2
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin:$KAFKA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$ZOOKEEPER_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH ZOOKEEPER_HOME
source /etc/profile
4、安装kafka
第一步:修改改$KAFKA_HOME/config 目录下的server.properties文件
在三台机器上分别修改,这里用server1举例
#这个1就是和zookeeper的myid文件的1对应
broker.id=1
#填写3台机器的地址,中间用逗号隔开
zookeeper.connect=server1:2181,server2:2181,server3:2181
#host.name是当前机器的地址
host.name=192.168.16.131
第二步:启动kafka
每台机器分别执行
kafka-server-start.sh -daemon /usr/local/kafka_2.9.1-0.8.2.2/config/server.properties
第三步:创建topic
#在leader上创建主题
kafka-topics.sh --create --zookeeper server1:2181,server2:2181,server3:2181 --replication-factor 3 --partitions 3 --topic WinterTop
#查看主题List
kafka-topics.sh --list --zookeeper server1:2181,server2:2181,server3:2181
#在leader上发送消息
kafka-console-producer.sh --broker-list server1:9092,server2:9092,server3:9092 --topic WinterTop
#在follower上消费消息
kafka-console-consumer.sh --bootstrap-server server1:9092,server2:9092,server3:9092 --from-beginning --topic WinterTop
5、kafka和Zookeeper
kafka在启动后,会将broker的信息存放在对应的zookeeper里的zNode中,默认存放在zookeeper中的路径 /broker/ids/xxx。
kafka的server.properties文件中指定zookeeper中的路径/kafka,那么对应的zNode也会在/kafka下创建 。