任务二:Kafka安装配置
本任务需要使用root用户完成相关配置,需要配置前置环境,具体要求如
下:
1、从宿主机/opt 目录下将文件 apache-zookeeper-3.5.7-bin.tar.gz、kafka_2.12-2.4.1.tgz 复制到容器 Master 中的/opt/software 路径中(若路径不存在,则需新建),将Master节点Zookeeper,Kafka安装包解压到/opt/module 目录下,将Kafka 解压命令复制并粘贴至客户端桌面【Release\模块A提交结果.docx】中对应的任务序号下;
1、将文件复制到容器 Master 中:
首先,需要进入宿主机的 /opt
目录,然后使用 scp
或 rsync
命令将文件复制到容器 Master 的 /opt/software
目录。如果该目录不存在,您需要先创建它。
# 进入宿主机的 /opt 目录
cd /opt
# 创建容器 Master 的 /opt/software 目录(如果不存在)
ssh root@Master 'mkdir -p /opt/software'
# 复制文件到容器 Master 的 /opt/software 目录
scp apache-zookeeper-3.5.7-bin.tar.gz kafka_2.12-2.4.1.tgz root@Master:/opt/software/
然后,您需要进入容器 Master,解压安装包到 /opt/module
目录,并复制 Kafka 解压命令。
# 进入容器 Master
ssh root@Master
# 解压 ZooKeeper 和 Kafka 到 /opt/module 目录
tar -zxf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
tar -zxf /opt/software/kafka_2.12-2.4.1.tgz -C /opt/module/
- 首先,配置 ZooKeeper 的集群模式, Master、slave1、slave2 作为其节点。
在 Master 节点上,进入 ZooKeeper 解压后的目录,编辑conf
目录下的zoo.cfg
文件。
配置 ZooKeeper
进入解压后的 ZooKeeper 目录。
cd /opt/moudle/zookeeper
复制一份样本配置文件 conf/zoo_sample.cfg 为 conf/zoo.cfg。
cp conf/zoo_sample.cfg conf/zoo.cfg
在zookeeper⽬录下创建zkData
[root@master zookeeper] mkdir zkData
[root@master zookeeper] cd zkData/
[root@master zkData] vim myid
在每个节点的 zkData 目录下创建一个名为 myid 的文件,并写入该节点的唯一标识符。
echo 0 > /opt/moudle/zookeeper/dataDir/myid
编辑 zoo.cfg 文件,配置集群信息。
vim zoo.cfg
dataDir=/opt/module/zookeeper/zkData
# 设置zookeeper内部通信地址和选举端⼝
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
其中,master、slave1 和 slave2 是节点的hostname,2888 是 follower 与 leader 通信的端口,3888 是用于选举新 leader 的端口。
环境变量修改内容:
vim /etc/profile
# ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH="$ZOOKEEPER_HOME/bin:$PATH"
source /etc/profile使环境变量⽣效:
source /etc/profile
将zookeeper拷⻉到slave1和slave2:
scp -r /opt/module/zookeeper/ slave1:/opt/module/
scp -r /opt/module/zookeeper/ slave2:/opt/module/
修改slave1和slave2上myid内容:
[root@slave1 module]# vim /opt/module/zookeeper/zkData/myid
2
[root@slave2 hadoop]# vim /opt/module/zookeeper/zkData/myid
3
将master节点\etc/profile文件拷⻉到slave1和slave2:
scp -r /etc/profile/ slave1:/etc/profile/
scp -r /etc/profile/ slave2:/etc/profile/
source /etc/profile使环境变量生效
启动zookeeper集群:
[root@slave2 hadoop]# /opt/module/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/ . /conf/zoo.cfg
Starting zookeeper . STARTED
[root@slave2 hadoop]#
[root@slave1 module]# /opt/module/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/ . /conf/zoo.cfg
Starting zookeeper . STARTED
[root@slave1 module]#
[root@master conf]# /opt/module/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/ . /conf/zoo.cfg
Starting zookeeper . STARTED
[root@master conf]#
查看zookeeper进程状态 验证结果:
[root@master conf]# /opt/module/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/ . /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[root@master conf]#
[root@slave1 module]# /opt/module/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/ . /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[root@slave1 module]#
[root@slave2 hadoop]# /opt/module/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/ . /conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
[root@slave2 hadoop]
2、配置好ZooKeeper,其中ZooKeeper使用集群模式,分别将Master、slave1、slave2 作为其节点(若ZooKeeper已安装配置好,则无需再次配置),配置好Kafka 的环境变量,使用kafka-server-start.sh–version查看Kafka的版本内容,并将命令和结果截图粘贴至客户端桌面【Release\模块A提交结果.docx】中对应的任务序号下;
解压重命名kafka,并配置环境变量:
tar -zxvf /opt/softwares/kafka_2.12-3.0.0.tgz -C /opt/module/
mv /opt/module/kafka_2.12-3.0.0/ /opt/module/kafka
vim /etc/profile
配置内容:
# KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH="$KAFKA_HOME/bin:$PATH"
修改kafka的server.properties配置⽂件:
vim /opt/module/kafka/config/server.properties
修改内容:
# 唯⼀值
broker.id=0
# kafka启动会⾃动创建
log.dirs=/opt/module/kafka/logs
# zk连接
zookeeper.connect=master:2181,slave1:2181,slave2:2181/kafka
将kafka拷⻉到slave1和slave2节点:
scp -r /opt/module/kafka/ slave1:/opt/module/
scp -r /opt/module/kafka/ slave2:/opt/module/
修改slave1和slave2节点的broker.id值
[root@slave1 module] vim /opt/module/kafka/config/server.properties
broker.id=1
[root@slave2 hadoop] vim /opt/module/kafka/config/server.properties
broker.id=2
保存并退出编辑器,然后运行以下命令查看 Kafka 版本:
./bin/kafka-server-start.sh --version
3、完善其他配置并分发Kafka文件到slave1、slave2中,并在每个节点启动Kafka,创建Topic,其中Topic名称为installtopic,分区数为2,副本数为2,将创建命令和创建成果截图粘贴至客户端桌面【Release\模块A提交结果.docx】中对应的任务序号下。
在master启动kafka:
# 进入 Kafka 解压后的目录
cd /opt/module/kafka
# 启动 Kafka
./bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
在 slave1 和 slave2 节点上启动 Kafka
ssh root@slave1 'cd /opt/module/kafka && ./bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties'
ssh root@slave2 'cd /opt/module/kafka && ./bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties'
创建topic
kafka-topics.sh --create --zookeeper master:2181 --replication-factor 2 --partitions 2 --topic installtopic
查询topic
kafka-topics.sh --list --zookeeper master:2181