Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。
环境说明:
服务端登录地址详见各任务服务端说明。
补充说明:宿主机可通过Asbru工具或SSH客户端进行SSH访问;
相关软件安装包在宿主机的/opt目录下,请选择对应的安装包进行安装,用不到的可忽略;
所有任务中应用命令必须采用绝对路径;
进入Master节点的方式为
docker exec -it master /bin/bash
进入Slave1节点的方式为
docker exec -it slave1 /bin/bash
进入Slave2节点的方式为
docker exec -it slave2 /bin/bash
三个容器节点的root密码均为123456
提前准备好apache-zookeeper-3.5.7-bin.tar.gz、kafka_2.12-2.4.1.tgz放在宿主机的/opt/下(模拟的自己准备,比赛时会提供)
Hadoop 完全分布式安装配置
环境搭建请看这篇文章大数据模块A环境搭建
前提条件已经在容器里搭建完hadoop了,没搭建的请看这篇Hadoop 完全分布式安装配置
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】中对应的任务序号下;
第一步:从宿主机/opt目录下将文件apache-zookeeper-3.5.7-bin.tar.gz、kafka_2.12-2.4.1.tgz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建)
[root@Bigdata ~]# docker cp /opt/apache-zookeeper-3.5.7-bin.tar.gz master:/opt/software/
[root@Bigdata ~]# docker cp /opt/kafka_2.12-2.4.1.tgz master:/opt/software/
第二步:将Master节点Zookeeper,Kafka安装包解压到/opt/module目录下
[root@master ~]# tar zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
[root@master ~]# tar zxvf /opt/software/kafka_2.12-2.4.1.tgz -C /opt/module/
重命名
[root@master ~]# mv /opt/module/apache-zookeeper-3.5.7-bin /opt/module/zookeeper
[root@master ~]# mv /opt/module/kafka_2.12-2.4.1 /opt/module/kafka
2、 配置好ZooKeeper,其中ZooKeeper使用集群模式,分别将Master、slave1、slave2作为其节点(若ZooKeeper已安装配置好,则无需再次配置),配置好Kafka的环境变量,使用kafka-server-start.sh --version查看Kafka的版本内容,并将命令和结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;
第一步:配置好ZooKeeper,其中ZooKeeper使用集群模式,分别将Master、slave1、slave2作为其节点(若ZooKeeper已安装配置好,则无需再次配置)
1.修改文件名
[root@master ~]# mv /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
2.配置zoo.cfg
[root@master ~]# vi /opt/module/zookeeper/conf/zoo.cfg
dataDir=/opt/module/zookeeper/data
datdLogDir=/opt/module/zookeeper/logs
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
代码位置如图:
3.创建目录
[root@master ~]# mkdir /opt/module/zookeeper/data
[root@master ~]# mkdir /opt/module/zookeeper/logs
4.添加myid文件到data里(里面就填一个数字,master填1,slave1填2,slave2填2)
[root@master ~]# vi /opt/module/zookeeper/data/myid
5.把配置好的zookeeper分发到子节点去
[root@master ~]# scp -r /opt/module/zookeeper slave1:/opt/module/
[root@master ~]# scp -r /opt/module/zookeeper slave2:/opt/module/
6.修改子节点的myid
vi /opt/module/zookeeper/data/myid
第二步:配置好Kafka的环境变量
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
将环境变量分发给子节点
[root@master ~]# scp /etc/profile slave1:/etc/
[root@master ~]# scp /etc/profile slave2:/etc/
使环境变量生效
[root@master ~]# source /etc/profile
[root@slave1 ~]# source /etc/profile
[root@slave2 ~]# source /etc/profile
第三步:使用kafka-server-start.sh --version查看Kafka的版本内容
[root@master ~]# kafka-server-start.sh --version
3、 完善其他配置并分发Kafka文件到slave1、slave2中,并在每个节点启动Kafka,创建Topic,其中Topic名称为installtopic,分区数为2,副本数为2,将创建命令和创建成果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。
第一步:完善其他配置并分发Kafka文件到slave1、slave2中
1.完善其他配置(以下配置基于server.properties文件)
vi /opt/module/kafka/config/server.properties
1.1修改broker.id(master为1 slave1为2 slave2为3)
1.2设置存放日志的地方
log.dirs=/opt/module/kafka/logs
1.3配置连接Zookeeper集群地址
zookeeper.connect=master:2181,slave1:2181,slave2:2181
2.分发Kafka文件到slave1、slave2中
2.1分发
[root@master ~]# scp -r /opt/module/kafka slave1:/opt/module
[root@master ~]# scp -r /opt/module/kafka slave2:/opt/module
2.2修改save* 的 broker.id
2.2.1slave1
[root@slave1 ~]# vi /opt/module/kafka/config/server.properties
2.2.2slave2
[root@slave2 ~]# vi /opt/module/kafka/config/server.properties
第二步:并在每个节点启动Kafka(和zookeeper)
1.启动zookeeper(每个节点都启动)
[root@master ~]# zkServer.sh start
[root@slave1 ~]# zkServer.sh start
[root@slave2 ~]# zkServer.sh start
2.启动kafka(每个节点都启动)
[root@master ~]# kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
[root@slave1 ~]# kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
[root@slave2 ~]# kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
第三步:创建Topic,其中Topic名称为installtopic,分区数为2,副本数为2
1.创建Topic,在 master
节点执行以下命令:
kafka-topics.sh --create \
--bootstrap-server master:9092 \
--replication-factor 2 \
--partitions 2 \
--topic installtopic
参数说明
--bootstrap-server <broker_list>
: 替换为 Kafka 集群的 broker 地址(例如localhost:9092
)。
--replication-factor 2
: 副本数设置为 2。
--partitions 2
: 分区数设置为 2。
--topic installtopic
: Topic 名称为installtopic
。
第四步:将创建命令和创建成果截图
1.验证创建成果
[root@master ~]# kafka-topics.sh --describe --bootstrap-server master:9092 --topic installtopic
2.成果截图
END
一键三连是我写文章的动力!
声明:此文章为个人学习笔记,如文章有问题欢迎留言探讨,也希望您的指正 !