准备工作
准备三台服务器:hadoop102,hadoop103,hadoop104,在opt文件下先创建两个文件module和software
Hadoop 部分(Hadoop如果不使用的话,可以不用安装Hadoop,但是在此阶段的环境搭建还要进行)
JDK的安装
1、用XShell传输工具将JDK导入到 opt 目录下的 software 文件夹下面
2、在software目录下解压JDK到/opt/module目录下
[root@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module
1
3、配置JDK环境变量
新建/etc/profile.d/my_env.sh文件
[root@hadoop102 /]# sudo vim /etc/profile.d/my_env.sh
1
添加一下内容,然后保存后退出
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
1
2
3
4
source一下/etc/profile文件,让新的环境变量PATH生效
[root@hadoop102 /]# source /etc/profile
1
4、测试JDK是否安装成功
[root@hadoop102 /]# java -version
1
看到以下结果,代表Java安装成功
java version "1.8.0_212"
1
集群分发脚本:xsync
1、在/usr/bin中添加脚本
[root@hadoop102 /]# cd /usr/bin
[root@hadoop102 bin]# vim xsync
1
2
2、在该文件中编写以下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
3、修改脚本 xsync 执行权限
[root@hadoop102 bin]# chmod +x xsync
1
4、同步jdk1.8.0_212到其他服务器
[root@hadoop102 /]# xsync jdk1.8.0_212
1
5、同步环境变量
[root@hadoop102 /]# sudo xsync /etc/profile.d/my_env.sh
1
6、在各自的服务器让环境变量生效
[root@hadoop102 /]# source /etc/profile
1
查看服务器Java进程脚本:jpsall
1、在/usr/bin中添加脚本
[root@hadoop102 /]# cd /usr/bin
[root@hadoop102 bin]# vim jpsall
1
2
2、输入以下内容,然后保存退出
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
1
2
3
4
5
6
7
3、赋予脚本执行权限
[root@hadoop102 bin]# chmod +x jpsall
1
4、分发 jpsall 脚本,保证其在三台服务器上都可以使用
[root@hadoop102 /]# xsync /usr/bin
1
Zookeeper 部分
Zookeeper 本地安装
1、用XShell传输工具将Zookeeper导入到 opt 目录下的 software 文件夹下面
2、在software目录下解压JDK到/opt/module目录下
[root@hadoop102 software]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module
1
3、修改名称
[root@hadoop102 module]# mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7
1
4、在/opt/module/zookeeper-3.5.7/这个目录下创建 zkData
[root@hadoop102 zookeeper-3.5.7]# mkdir zkData
1
5、在/opt/module/zookeeper-3.5.7/zkData 目录下创建一个 myid 的文件
[root@hadoop102 zkData]# vim myid
1
在文件中添加与server对应的编号,如hadoop102中填写2(上下不要用空行,左右不要有空格)
2
1
6、分发到其他服务器上
[root@hadoop102 /]# xsync zookeeper-3.5.7
1
并分别在 hadoop103、hadoop104上修改myid文件中的内容为3、4
7、将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
[root@hadoop102 conf]# mv zoo_sample.cfg zoo.cfg
1
8、打开zoo.cfg文件,修改 dataDir 路径
[root@hadoop102 conf]# vim zoo.cfg
1
# 修改数据存储路径配置
dataDir=/opt/module/zookeeper-3.5.7/zkData
# 增加如下配置
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
1
2
3
4
5
6
7
9、同步zoo.cfg配置文件
[root@hadoop102 conf]# xsync zoo.cfg
1
10、分别启动Zookeeper
[root@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start
[root@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start
[root@hadoop104 zookeeper-3.5.7]$ bin/zkServer.sh start
1
2
3
11、查看状态
[root@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh status
[root@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh status
[root@hadoop104 zookeeper-3.5.7]$ bin/zkServer.sh status
1
2
3
ZK集群启动停止脚本:zk.sh
1、在/usr/bin中添加脚本
[root@hadoop102 bin]$ vim zk.sh
1
在脚本中编写如下内容
#!/bin/bash
case $1 in
"start"){
for i in VM-16-14-centos
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
};;
"stop"){
for i in VM-16-14-centos
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in VM-16-14-centos
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2、增加脚本执行权限
[root@hadoop102 bin]$ chmod u+x zk.sh
1
3、Zookeeper 集群启动脚本
[root@hadoop102 /]$ zk.sh start
1
4、Zookeeper 集群停止脚本
[root@hadoop102 /]$ zk.sh stop
1
6、同步脚本
[root@hadoop102 /]# xsync /usr/bin
1
Kafka 部分
Kafka 安装
1、用XShell传输工具将Zookeeper导入到 opt 目录下的 software 文件夹下面
2、在software目录下解压JDK到/opt/module目录下
[root@hadoop102 software]# tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module
1
3、修改解压的名称
[root@hadoop102 module]# mv kafka_2.12-3.0.0/ kafka
1
4、进入到/opt/module/kafka 目录,修改配置文件
[root@hadoop102 kafka]$ cd config/
[root@hadoop102 config]$ vim server.properties
1
2
5、修改 dataDir 路径
# broker 的全局唯一编号,不能重复,只能是数字。
broker.id=0
# kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔
log.dirs=/opt/module/kafka/datas
# 增加以下内容
# 配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
1
2
3
4
5
6
7
8
9
6、分发安装包到其他服务器
[root@hadoop102 module]$ xsync kafka/
1
7、分别在 hadoop103 和 hadoop104 上修改配置文件/opt/module/kafka/config/server.properties 中的 broker.id=1、broker.id=2(注:broker.id 不得重复,整个集群中唯一。)
[root@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
[root@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
1
2
3
4
5
6
7
8
8、在/etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置
[root@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
1
增加如下内容:
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
1
2
3
9、source一下/etc/profile文件,让新的环境变量PATH生效
[root@hadoop102 /]# source /etc/profile
1
10、分发环境变量文件到其他节点,并 source。
[root@hadoop102 /]# sudo xsync /etc/profile.d/my_env.sh
[root@hadoop103 module]$ source /etc/profile
[root@hadoop104 module]$ source /etc/profile
1
2
3
11、先启动Zookeeper集群,在启动Kafka
[root@hadoop102 kafka]$ zk.sh start
1
12、依次在 hadoop102、hadoop103、hadoop104上启动Kafka
[root@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[root@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[root@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
1
2
3
13、关闭集群
[root@hadoop102 kafka]$ bin/kafka-server-stop.sh
[root@hadoop103 kafka]$ bin/kafka-server-stop.sh
[root@hadoop104 kafka]$ bin/kafka-server-stop.sh
1
2
3
Kafka集群启动停止脚本:kf.sh
1、在/usr/bin中添加脚本
[root@hadoop102 bin]$ vim zk.sh
1
在脚本中编写以下内容
#! /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
2、增加脚本执行权限
[root@hadoop102 bin]$ chmod u+x kf.sh
1
3、Kafka 集群启动脚本
[root@hadoop102 /]$ kf.sh start
1
4、Kafka 集群停止脚本
[root@hadoop102 /]$ kf.sh stop
1
注意:停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止, Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。
总结
以上就是博主总结的 Kafka 搭建的过程了,在此过程中并没有使用SSL免密登录,每次执行脚本的时候需要输入服务器的登录密码,有点麻烦,如果想要实现SSL免密登录,可以看尚硅谷海哥的hadoop视频:尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack