#安装包地址
1.zookeeper

https://mirrors.huaweicloud.com/apache/zookeeper/zookeeper-3.7.1/

2.kakfa

https://mirrors.huaweicloud.com/apache/kafka/3.3.0/

3.flume

https://mirrors.huaweicloud.com/apache/flume/1.10.1/

1.安装zookeeper

1.1上传安装包
1.2解压并改名
#具体看你自己的上传目录
#解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/module

#改名
mv apache-zookeeper-3.7.1-bin/ zookeeper
1.3配置节点编号
#在/opt/module/zookeeper/目录下创建zkData
[student@hadoop102 zookeeper]$ mkdir zkData

#在/opt/module/zookeeper/zkData目录下创建一个myid的文件
[student@hadoop102 zookeeper]$ cd zkData
[student@hadoop102 zookeeper]$ vim myid

#在文件中添加与server对应的编号:(hadoop102->2/hadoop103->3/hadoop104->4)

2
1.4配置核心zoo.cfg文件
#重命名/opt/module/zookeeper/conf目录下的zoo_sample.cfg为zoo.cfg
[student@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg

#打开zoo.cfg文件
[student@hadoop102 conf]$ vim zoo.cfg

#修改数据存储路径配置

dataDir=/opt/module/zookeeper/zkData

#增加如下配置

#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

#zoo.cfg配置参数解读
server.A=B:C:D。
A是一个数字,表示这个是哪个节点
B是这个服务器的地址
C是这个服务器Follower与集群中的Leader服务器交换信息的端口
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口
1.5分发zookeeper
#分发zookeeper
[student@hadoop102 module]$ xsync zookeeper/

#注意:分发后要修改对应节点的myid
修改hadoop103、hadoop104上的myid文件中内容为3、4
1.6启停脚本
#分别启动Zookeeper
[student@hadoop102 zookeeper]$ bin/zkServer.sh start

[student@hadoop103 zookeeper]$ bin/zkServer.sh start

[student@hadoop104 zookeeper]$ bin/zkServer.sh start

#查看状态
[student@hadoop102 zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper/bin/../conf/zoo.cfg
Mode: follower

[student@hadoop103 zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper/bin/../conf/zoo.cfg
Mode: leader

[student@hadoop104 zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper/bin/../conf/zoo.cfg
Mode: follower

启停脚本

#在hadoop102的/home/student/bin目录下创建脚本
[student@hadoop102 bin]$ vim zk.sh
#在脚本中编写如下内容


#!/bin/bash

case $1 in
"start"){
	for i in hadoop102 hadoop103 hadoop104
	do
        echo ---------- zookeeper $i 启动 ------------
		ssh $i "/opt/module/zookeeper/bin/zkServer.sh start"
	done
};;
"stop"){
	for i in hadoop102 hadoop103 hadoop104
	do
        echo ---------- zookeeper $i 停止 ------------    
		ssh $i "/opt/module/zookeeper/bin/zkServer.sh stop"
	done
};;
"status"){
	for i in hadoop102 hadoop103 hadoop104
	do
        echo ---------- zookeeper $i 状态 ------------    
		ssh $i "/opt/module/zookeeper/bin/zkServer.sh status"
	done
};;
esac



#增加脚本执行权限
[student@hadoop102 bin]$ chmod 777 zk.sh
#Zookeeper集群启动脚本
[student@hadoop102 module]$ zk.sh start
#Zookeeper集群停止脚本
[student@hadoop102 module]$ zk.sh stop

2.安装kafka

2.1上传安装包
2.2解压并改名
#解压安装包
[student@hadoop102 software]$ tar -zxvf kafka_2.12-3.3.1.tgz -C /opt/module/

#修改解压后的文件名称
[student@hadoop102 hadoop]$ cd /opt/module/
[student@hadoop102 module]$ mv kafka_2.12-3.3.1/ kafka
2.3修改配置文件
#进入到/opt/module/kafka目录,修改配置文件
[student@hadoop102 kafka]$ cd config/
[student@hadoop102 config]$ vim server.properties
#修改一下内容

#broker的全局唯一编号,不能重复,只能是数字。
broker.id=0

#broker对外暴露的IP和端口 (每个节点单独配置)
advertised.listeners=PLAINTEXT://hadoop102:9092

#kafka运行日志(数据)存放的路径,无需手动创建修改配置文件即可
log.dirs=/opt/module/kafka/datas

#配置连接Zookeeper集群地址(在zk根目录下创建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
2.4分发kafka
#分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id及advertised.listeners

#注意:broker.id不得重复,整个集群中唯一

[student@hadoop103 module]$ vim kafka/config/server.properties
#修改:
#The id of the broker. This must be set to a unique integer for each broker.
broker.id=1
#broker对外暴露的IP和端口 (每个节点单独配置)
advertised.listeners=PLAINTEXT://hadoop103:9092

[student@hadoop104 module]$ vim kafka/config/server.properties
#修改:
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=2
#broker对外暴露的IP和端口 (每个节点单独配置)
advertised.listeners=PLAINTEXT://hadoop104:9092
2.5配置环境变量
#在/etc/profile.d/my_env.sh文件中增加kafka环境变量配置
[student@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
#增加如下内容:

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin


#刷新一下环境变量
[student@hadoop102 module]$ source /etc/profile

#分发环境变量文件到其他节点,并source。
[student@hadoop102 module]$ sudo /home/student/bin/xsync /etc/profile.d/my_env.sh
[student@hadoop103 module]$ source /etc/profile
[student@hadoop104 module]$ source /etc/profile
2.6启停脚本
#先启动Zookeeper集群,然后启动Kafka。
[student@hadoop102 kafka]$ zk.sh start 

#依次在hadoop102、hadoop103、hadoop104节点上启动Kafka。
[student@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[student@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[student@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

注意:配置文件的路径要能够到server.properties。
#查看进程
[student@hadoop102 kafka]$ xcall.sh jps
#如下
--------- hadoop102 ----------
3268 QuorumPeerMain
4241 Kafka
4549 Jps
--------- hadoop103 ----------
4669 Kafka
4452 QuorumPeerMain
1478 Jps
--------- hadoop104 ----------
3255 Jps
3156 Kafka
2751 QuorumPeerMain

#关闭集群
#依次在hadoop102、hadoop103、hadoop104节点上停止Kafka。
[student@hadoop102 kafka]$ bin/kafka-server-stop.sh 
[student@hadoop103 kafka]$ bin/kafka-server-stop.sh 
[student@hadoop104 kafka]$ bin/kafka-server-stop.sh 
#查看进程
[student@hadoop102 kafka]$ xcall jps
#如下
--------- hadoop102 ----------
3268 QuorumPeerMain
4549 Jps
--------- hadoop103 ----------
4452 QuorumPeerMain
1478 Jps
--------- hadoop104 ----------
3255 Jps
2751 QuorumPeerMain

启停脚本

#在/home/student/bin目录下创建文件kf.sh脚本文件
[student@hadoop102 bin]$ vim kf.sh
#脚本如下:

#! /bin/bash

case $1 in
"start"){
    for i in hadoop102 hadoop103 hadoop104
    do
        echo " --------启动 $i Kafka-------"
        ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
    done
};;
"stop"){
    for i in hadoop102 hadoop103 hadoop104
    do
        echo " --------停止 $i Kafka-------"
        ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh "
    done
};;
esac


#添加执行权限
[student@hadoop102 bin]$ chmod 777 kf.sh
#启动集群命令
[student@hadoop102 ~]$ kf.sh start
#停止集群命令
[student@hadoop102 ~]$ kf.sh stop

注意:停止Kafka集群时,一定要等Kafka所有节点进程全部停止后再停止Zookeeper集群

启动测试:

[student@hadoop102 opt]$ kf.sh stop
 --------停止 hadoop102 Kafka-------
 --------停止 hadoop103 Kafka-------
 --------停止 hadoop104 Kafka-------
[student@hadoop102 opt]$ kf.sh start
 --------启动 hadoop102 Kafka-------
 --------启动 hadoop103 Kafka-------
 --------启动 hadoop104 Kafka-------
[student@hadoop102 opt]$ xcall.sh jps
--------- hadoop102 ----------
3736 Kafka
3817 Jps
1291 QuorumPeerMain
--------- hadoop103 ----------
3488 Kafka
1251 QuorumPeerMain
3561 Jps
--------- hadoop104 ----------
3585 Jps
1266 QuorumPeerMain
3512 Kafka
[student@hadoop102 opt]$

3.安装flume

3.1上传安装包
3.2解压并改名
#解压到/opt/module
[student@hadoop102 software]$ tar -zxf /opt/software/apache-flume-1.10.1-bin.tar.gz -C /opt/module/

#修改apache-flume-1.10.1-bin的名称为flume
[student@hadoop102 module]$ mv /opt/module/apache-flume-1.10.1-bin /opt/module/flume
3.3修改配置文件
#修改conf目录下的log4j2.xml配置文件,配置日志文件路径

[student@hadoop102 conf]$ vim log4j2.xml
#修改一下两点:
#第一点:
<Configuration status="ERROR">
  <Properties>
    <Property name="LOG_DIR">.</Property>
  </Properties>

#修改成:

<Configuration status="ERROR">
  <Properties>
    <Property name="LOG_DIR">/opt/module/flume/log</Property>
  </Properties>
 
#第二点:在最后
    <Root level="INFO">
      <AppenderRef ref="LogFile" />
    </Root>
  </Loggers>
</Configuration>


#修改成
    <Root level="INFO">
      <AppenderRef ref="LogFile" />
      <AppenderRef ref="Console" />
    </Root>
  </Loggers>
</Configuration>

完结!

更多推荐