环境准备
准备三台centos7的服务器 两核两G的
服务器系统 | Centos7.3 |
---|---|
内存 | 2G |
CPU | 2核 |
IP地址 | 10.0.0.41 |
服务器系统 | Centos7.3 |
---|---|
内存 | 2G |
CPU | 2核 |
IP地址 | 10.0.0.42 |
服务器系统 | Centos7.3 |
---|---|
内存 | 2G |
CPU | 2核 |
IP地址 | 10.0.0.43 |
下面的操作是在每台机器上都要执行的,基本上都是重复的动作
#关闭防火墙和SELinux
systemctl stop firewalld
setenforce 0
#安装jdk环境
rpm -ivh jdk-8u131-linux-x64_.rpm
#查看Java的版本
java -version
#查看本地是否安装上了jdk环境
rpm -qa | grep jdk
#下载wget工具
yum -y install wget
#进入目录
cd /usr/local/src
#通过wget工具获取zookeeper源码包
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
#通过wget工具获取kafka源码包
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.2.0/kafka_2.11-2.2.0.tgz
#解压zookeeper 然后移动到/usr/local/zookeeper目录 kafka做同样的操作 kafka移动到/usr/local/kafka目录
#解压zookeeper源码包
tar zxf zookeeper-3.4.14.tar.gz
#然后移动到/usr/local/zookeeper目录,在移动的过程当中并改名
mv zookeeper-3.4.14 /usr/local/zookeeper
#解压kafka源码包
tar zxf kafka_2.11-2.2.0.tgz
#kafka做同样的操作 kafka移动到/usr/local/kafka目录
mv kafka_2.11-2.2.0 /usr/local/kafka
在 /usr/local/zookeeper下创建两个目录分别为zkdatalog zkdata
cd /usr/local/zookeeper
#zkdata是存放快照日志,zkdatalog是存放事物日志
mkdir {zkdatalog,zkdata}
进入/usr/loca/zookeeper/conf 复制一个配置文件 修改复制出来的配置文件
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
#编辑修改zookeeper的配置文件
vim zoo.cfg
在第一台服务器上执行
#就是在不同的服务器上,将服务器编号发送到zkdata下的myid。
echo '1' > /usr/local/zookeeper/zkdata/myid
在第二台服务器上执行
echo '2' > /usr/local/zookeeper/zkdata/myid
在第三台服务器上执行
echo '3' > /usr/local/zookeeper/zkdata/myid
启动zookeeper集群
# 启动zookeepe服务,启动的时候按顺序开启 第一台 第二台 第三台
cd /usr/local/zookeeper/bin
./zkServer.sh start
查看 zookpeer 的状态
./zkServer.sh status
#Mode: leader为主节点,Mode: follower为从节点,zk集群一般只有一个leader,多个follower,主一般是响应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。
zookeeper到这里算是做完了,下面开始搭建kafka集群
第一台
#进入kafka的配置文件目录
cd /usr/local/kafka/config
#编辑修改配置文件
vim server.properties
第二台
cd /usr/local/kafka/config
vim server.properties
第三台
cd /usr/local/kafka/config
vim server.properties
vim /etc/hosts
添加以下内容在每一台服务器上
10.0.0.41 kafka01
10.0.0.42 kafka02
10.0.0.43 kafka03
启动Kafka集群服务
启动kafka的命令 每一台服务器都启动kafka
#进入kafka的启动目录
cd /usr/local/kafka/bin
#以守护进程的方式启动kafka服务,并指定配置文件
./kafka-server-start.sh -daemon ../config/server.properties
#查看Kafka服务的端口
ss -ntlp | grep 9092
创建主题 topics
cd /usr/local/kafka/bin
./kafka-topics.sh --create --zookeeper 10.0.0.41:2181 --replication-factor 2 --partitions 3 --topic aaronszm
#--replication-factor 2 复制两份
#--partitions 1 创建一个分区
#--topic tian 主题为aaronszm
查看主题 如果可以显示刚刚创建的就是成功了
./kafka-topics.sh --list --zookeeper 10.0.0.41:2181
cd /usr/local/kafka/bin
#创建一个Producer,Producer是生产者的意思。
./kafka-console-producer.sh --broker-list 10.0.0.41:9092 --topic aaronszm
第二台服务器上操作模拟消费者
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 10.0.0.42:9092 --topic aaronszm --from-beginning
测试模拟生产者和消费者是否成功
在模拟生产者的服务器上写一些东西 可以在模拟消费者的服务器上可以看到表示成功如下所示