域名注册好了怎么弄网站,如何用云服务器搭建个人网站,成全视频在线看,百度2022第三季度财报前言
跟着尚硅谷海哥文档搭建的Kafka集群环境#xff0c;在此记录一下#xff0c;侵删
注意#xff1a;博主在服务器上搭建环境的时候使用的是一个服务器#xff0c;所以这篇博客可能会出现一些xsync分发到其他服务器时候的错误#xff0c;如果你在搭建的过程中出现了错…前言
跟着尚硅谷海哥文档搭建的Kafka集群环境在此记录一下侵删
注意博主在服务器上搭建环境的时候使用的是一个服务器所以这篇博客可能会出现一些xsync分发到其他服务器时候的错误如果你在搭建的过程中出现了错误欢迎评论来访我们一起解决。
准备工作
准备三台服务器hadoop102hadoop103hadoop104在opt文件下先创建两个文件module和software
Hadoop 部分(Hadoop如果不使用的话可以不用安装Hadoop但是在此阶段的环境搭建还要进行)
JDK的安装
1、用XShell传输工具将JDK导入到 opt 目录下的 software 文件夹下面 2、在software目录下解压JDK到/opt/module目录下
[roothadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module3、配置JDK环境变量
新建/etc/profile.d/my_env.sh文件
[roothadoop102 /]# sudo vim /etc/profile.d/my_env.sh添加一下内容然后保存后退出
#JAVA_HOME
export JAVA_HOME/opt/module/jdk1.8.0_212
export PATH$PATH:$JAVA_HOME/bin
source一下/etc/profile文件让新的环境变量PATH生效
[roothadoop102 /]# source /etc/profile4、测试JDK是否安装成功
[roothadoop102 /]# java -version看到以下结果代表Java安装成功
java version 1.8.0_212集群分发脚本xsync
1、在/usr/bin中添加脚本
[roothadoop102 /]# cd /usr/bin
[roothadoop102 bin]# vim xsync2、在该文件中编写以下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
doecho $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 $pdirrsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done3、修改脚本 xsync 执行权限
[roothadoop102 bin]# chmod x xsync4、同步jdk1.8.0_212到其他服务器
[roothadoop102 /]# xsync jdk1.8.0_2125、同步环境变量
[roothadoop102 /]# sudo xsync /etc/profile.d/my_env.sh6、在各自的服务器让环境变量生效
[roothadoop102 /]# source /etc/profile查看服务器Java进程脚本jpsall
1、在/usr/bin中添加脚本
[roothadoop102 /]# cd /usr/bin
[roothadoop102 bin]# vim jpsall2、输入以下内容然后保存退出
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
doecho $host ssh $host jps
done
3、赋予脚本执行权限
[roothadoop102 bin]# chmod x jpsall4、分发 jpsall 脚本保证其在三台服务器上都可以使用
[roothadoop102 /]# xsync /usr/binZookeeper 部分
Zookeeper 本地安装
1、用XShell传输工具将Zookeeper导入到 opt 目录下的 software 文件夹下面
2、在software目录下解压JDK到/opt/module目录下
[roothadoop102 software]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module3、修改名称
[roothadoop102 module]# mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.74、在/opt/module/zookeeper-3.5.7/这个目录下创建 zkData
[roothadoop102 zookeeper-3.5.7]# mkdir zkData5、在/opt/module/zookeeper-3.5.7/zkData 目录下创建一个 myid 的文件
[roothadoop102 zkData]# vim myid在文件中添加与server对应的编号如hadoop102中填写2上下不要用空行左右不要有空格
26、分发到其他服务器上
[roothadoop102 /]# xsync zookeeper-3.5.7并分别在 hadoop103、hadoop104上修改myid文件中的内容为3、4
7、将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
[roothadoop102 conf]# mv zoo_sample.cfg zoo.cfg8、打开zoo.cfg文件修改 dataDir 路径
[roothadoop102 conf]# vim zoo.cfg# 修改数据存储路径配置
dataDir/opt/module/zookeeper-3.5.7/zkData
# 增加如下配置
#######################cluster##########################
server.2hadoop102:2888:3888
server.3hadoop103:2888:3888
server.4hadoop104:2888:38889、同步zoo.cfg配置文件
[roothadoop102 conf]# xsync zoo.cfg10、分别启动Zookeeper
[roothadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start
[roothadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start
[roothadoop104 zookeeper-3.5.7]$ bin/zkServer.sh start11、查看状态
[roothadoop102 zookeeper-3.5.7]$ bin/zkServer.sh status
[roothadoop103 zookeeper-3.5.7]$ bin/zkServer.sh status
[roothadoop104 zookeeper-3.5.7]$ bin/zkServer.sh statusZK集群启动停止脚本zk.sh
1、在/usr/bin中添加脚本
[roothadoop102 bin]$ vim zk.sh在脚本中编写如下内容
#!/bin/bashcase $1 in
start){for i in VM-16-14-centosdoecho ---------- zookeeper $i 启动 ------------ssh $i /opt/module/zookeeper-3.5.7/bin/zkServer.sh startdone
};;
stop){for i in VM-16-14-centosdoecho ---------- zookeeper $i 停止 ------------ ssh $i /opt/module/zookeeper-3.5.7/bin/zkServer.sh stopdone
};;
status){for i in VM-16-14-centosdoecho ---------- zookeeper $i 状态 ------------ ssh $i /opt/module/zookeeper-3.5.7/bin/zkServer.sh statusdone
};;
esac2、增加脚本执行权限
[roothadoop102 bin]$ chmod ux zk.sh3、Zookeeper 集群启动脚本
[roothadoop102 /]$ zk.sh start4、Zookeeper 集群停止脚本
[roothadoop102 /]$ zk.sh stop6、同步脚本
[roothadoop102 /]# xsync /usr/binKafka 部分
Kafka 安装
1、用XShell传输工具将Zookeeper导入到 opt 目录下的 software 文件夹下面
2、在software目录下解压JDK到/opt/module目录下
[roothadoop102 software]# tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module3、修改解压的名称
[roothadoop102 module]# mv kafka_2.12-3.0.0/ kafka4、进入到/opt/module/kafka 目录修改配置文件
[roothadoop102 kafka]$ cd config/
[roothadoop102 config]$ vim server.properties5、修改 dataDir 路径
# broker 的全局唯一编号不能重复只能是数字。
broker.id0# kafka 运行日志(数据)存放的路径路径不需要提前创建kafka 自动帮你创建可以配置多个磁盘路径路径与路径之间可以用分隔
log.dirs/opt/module/kafka/datas# 增加以下内容
# 配置连接 Zookeeper 集群地址在 zk 根目录下创建/kafka方便管理
zookeeper.connecthadoop102:2181,hadoop103:2181,hadoop104:2181/kafka6、分发安装包到其他服务器
[roothadoop102 module]$ xsync kafka/7、分别在 hadoop103 和 hadoop104 上修改配置文件/opt/module/kafka/config/server.properties 中的 broker.id1、broker.id2注broker.id 不得重复整个集群中唯一。
[roothadoop103 module]$ vim kafka/config/server.properties
# 修改:
# The id of the broker. This must be set to a unique integer for each broker.
broker.id1
[roothadoop104 module]$ vim kafka/config/server.properties
# 修改:
# The id of the broker. This must be set to a unique integer for each broker.
broker.id28、在/etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置
[roothadoop102 module]$ sudo vim /etc/profile.d/my_env.sh增加如下内容
#KAFKA_HOME
export KAFKA_HOME/opt/module/kafka
export PATH$PATH:$KAFKA_HOME/bin9、source一下/etc/profile文件让新的环境变量PATH生效
[roothadoop102 /]# source /etc/profile10、分发环境变量文件到其他节点并 source。
[roothadoop102 /]# sudo xsync /etc/profile.d/my_env.sh
[roothadoop103 module]$ source /etc/profile
[roothadoop104 module]$ source /etc/profile11、先启动Zookeeper集群在启动Kafka
[roothadoop102 kafka]$ zk.sh start 12、依次在 hadoop102、hadoop103、hadoop104上启动Kafka
[roothadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[roothadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties
[roothadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties13、关闭集群
[roothadoop102 kafka]$ bin/kafka-server-stop.sh
[roothadoop103 kafka]$ bin/kafka-server-stop.sh
[roothadoop104 kafka]$ bin/kafka-server-stop.sh Kafka集群启动停止脚本kf.sh
1、在/usr/bin中添加脚本
[roothadoop102 bin]$ vim zk.sh在脚本中编写以下内容
#! /bin/bash
case $1 in
start){for i in hadoop102 hadoop103 hadoop104doecho --------启动 $i Kafka-------ssh $i /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.propertiesdone
};;
stop){for i in hadoop102 hadoop103 hadoop104doecho --------停止 $i Kafka-------ssh $i /opt/module/kafka/bin/kafka-server-stop.sh done
};;
esac2、增加脚本执行权限
[roothadoop102 bin]$ chmod ux kf.sh3、Kafka 集群启动脚本
[roothadoop102 /]$ kf.sh start 4、Kafka 集群停止脚本
[roothadoop102 /]$ kf.sh stop注意停止 Kafka 集群时一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息Zookeeper 集群一旦先停止 Kafka 集群就没有办法再获取停止进程的信息只能手动杀死 Kafka 进程了。
总结
以上就是博主总结的 Kafka 搭建的过程了在此过程中并没有使用SSL免密登录每次执行脚本的时候需要输入服务器的登录密码有点麻烦如果想要实现SSL免密登录可以看尚硅谷海哥的hadoop视频尚硅谷大数据Hadoop教程hadoop3.x搭建到集群调优百万播放