行业知识
【Hadoop】好用的脚本分享
知识目录
- 一、写在前面✨
- 二、一键安装HA
- 三、Hadoop一键启动
- 四、一键启动可视化工具
- 五、���语
一、写在前面✨
大家好!我是初心,希望我们一路走来能坚守初心!
个人主页:初心%个人主页
今天跟大家分享的文章是 在Hadoop使用过程中,可以提升我们学习效率的脚本分享。 ,希望能帮助到大家!本篇文章收录于 初心 的 Hadoop 专栏。
不努力就只能听到别人的好消息。』—— 佚名「网易云音乐热评」
二、一键安装HA
- 脚本功能描述
一键安装HA脚本主要用于安装HA高可用集群环境,避免复杂的搭建过程。
- 脚本注意事项
1.四个结点均配置好了免密登录,并且关闭了防火墙!!!
2.可以使用 xsync 脚本进行从 hadoop102 分发到各结点的操作。
3.我的软件是:jdk-8u301-linux-x64.tar.gz,apache-zookeeper-3.5.7-bin.tar.gz,hadoop-3.1.3.tar.gz,软件版本要一致。
4.如果你之前安装失败了,将所有涉及到的文件和目录删除,然后重启所有虚拟机,重新开始。
5.将8个配置文件修改好上传到虚拟机。需要修改主机名,ssh路径,用户名
core-site.xml,hdfs-site.xml,hadoop-env.sh,workers,yarn-site.xml,mapred-site.xml(都在hadoop/etc/hadoop目录下)zoo.cfg(zookeeper/conf/目录下),my_env.sh(/etc/profile.d/)
- 脚本内容
#!/usr/bin/env bash# 获取用户主机名function testRead(){ read -p "请输入你的四台主机名:(用空格隔开 如果敲错了 按下ctrl+backspace可以删除 注意一定要有四个)" one two three four if [ ! -n $four ] then echo "Args Number Input Error..." exit; fi}# 获取用户的8个配置文件存放路径和将要安装的目录function getFilesAndTargetDir(){ read -p "请输入你的软件包路径(绝对路径)" softwareDir read -p "请输入你的8个配置文件存放路径(配置文件已修改好 绝对路径)" filesDir read -p "你想要将HA安装在哪个目录下(空目录 绝对路径)" targetDir}function getUserPathFileName(){ read -p "你的环境变量配置文件名:(在/etc/profile.d/下 例如my_path.sh 只要文件名)" pathFileName}# 1 function unpackSoftwarePackage(){ echo "----------一、解压软件包----------" sleep 2 echo "----------1.创建hadoop HA高可用目录:$targetDir/----------" if [ ! -d "$targetDir/" ];then mkdir $targetDir/ fi echo "----------2.解压JDK----------" tar -xzvf $softwareDir/jdk-8u202-linux-x64.tar.gz -C $targetDir/ echo "----------3.解压hadoop----------" tar -xzvf $softwareDir/hadoop-3.1.3.tar.gz -C $targetDir/ echo "----------4.解压zookeeper----------" tar -xzvf $softwareDir/apache-zookeeper-3.5.7-bin.tar.gz -C $targetDir/ echo "----------第一步已完成----------" return 0}# 2 function changeName(){ echo "----------二、改名----------" sleep 2 echo "----------1.重命名Zookeeper----------" mv $targetDir/apache-zookeeper-3.5.7-bin/ $targetDir/zookeeper echo "----------2.重命名JDK----------" mv $targetDir/jdk1.8.0_202/ $targetDir/jdk1.8 echo "----------第二步已完成----------" return 0}# 3function copyConfigurationFiles(){ echo "----------三、修改八个配置文件----------" sleep 2 echo "----------1.修改hadoop下的6个文件----------" cat $filesDir/core-site.xml > $targetDir/hadoop-3.1.3/etc/hadoop/core-site.xml cat $filesDir/hdfs-site.xml > $targetDir/hadoop-3.1.3/etc/hadoop/hdfs-site.xml cat $filesDir/mapred-site.xml > $targetDir/hadoop-3.1.3/etc/hadoop/mapred-site.xml cat $filesDir/yarn-site.xml > $targetDir/hadoop-3.1.3/etc/hadoop/yarn-site.xml cat $filesDir/workers > $targetDir/hadoop-3.1.3/etc/hadoop/workers cat $filesDir/hadoop-env.sh > $targetDir/hadoop-3.1.3/etc/hadoop/hadoop-env.sh echo "----------2.修改zookeeper下的1个文件----------" mv $targetDir/zookeeper/conf/zoo_sample.cfg $targetDir/zookeeper/conf/zoo.cfg cat $filesDir/zoo.cfg > $targetDir/zookeeper/conf/zoo.cfg echo "----------3.修改环境变量----------" cat $filesDir/$pathFileName > /etc/profile.d/$pathFileName source /etc/profile.d/$pathFileName echo "----------4.安装psmisc插件----------" sudo yum install -y psmiscssh $two "sudo yum install -y psmisc" echo "----------第三步已完成----------" return 0}# 4.function createDir(){ echo "----------四、创建目录----------" sleep 2 echo "----------1.创建zkData高可用目录----------" mkdir $targetDir/zookeeper/zkData touch $targetDir/zookeeper/zkData/myid echo "----------2.创建Hadoop数据临时目录----------" mkdir $targetDir/tmp echo "----------3.创建JournalNode日志目录----------" mkdir $targetDir/logs echo "----------第四步已完成----------" return 0}# 5.function xsyncHA(){ echo "----------五、分发HA目录----------" sleep 2 xsync $targetDir/ echo "----------1.分发环境变量配置文件----------" for i in $two $three $fourdosudo scp /etc/profile.d/$pathFileName $i:/etc/profile.d/done echo "----------2.刷新环境变量----------" for i in $two $three $fourdossh $i "source /etc/profile.d/$pathFileName"done echo "----------第五步已完成----------" return 0}# 6.function changeMyIdOfZK(){ echo "----------六、修改zookeeper的myid 使用ssh方式----------" sleep 2 echo "---------- 修改two的myid文件------------"ssh $two "echo '1' >> $targetDir/zookeeper/zkData/myid" echo "---------- 修改three的myid文件------------"ssh $three "echo '2' >> $targetDir/zookeeper/zkData/myid" echo "---------- 修改four的myid文件------------"ssh $four "echo '3' >> $targetDir/zookeeper/zkData/myid" echo "----------第六步已完成----------"}# 7.function startZKOnThreeNode(){ echo "----------七、启动ZK----------" sleep 2 echo "----------启动zookeeper----------"for i in $two $three $fourdo echo ---------- zookeeper $i 启动 ------------ssh $i "$targetDir/zookeeper/bin/zkServer.sh start"done echo "----------第七步已完成----------"}# 8.function startHadoop(){ echo "----------八、启动hadoop----------" sleep 2 echo "----------1.启动JournalNode----------" for i in $one $two $threedo echo ---------- hadoop $i JournalNode启动 ------------ssh $i "hdfs --daemon start journalnode"done echo "----------2.初始化NameNode----------"hdfs namenode -format echo "----------3.初始化Zookeeper----------"ssh $two "hdfs zkfc -formatZK" echo "----------4.启动两个NameNode----------" hdfs --daemon start namenodessh $two "hdfs namenode -bootstrapStandby" echo "----------5.启动集群----------" start-dfs.sh echo "----------第八步已完成----------" echo "----------Hadoop HA高可用搭建已完成----------"}# 调用上述函数完成安装HAtestReadgetFilesAndTargetDirgetUserPathFileNameunpackSoftwarePackagechangeNamecopyConfigurationFilescreateDirxsyncHAchangeMyIdOfZKstartZKOnThreeNodestartHadoop三、Hadoop一键启动
- 脚本功能描述
这个脚本的功能就是执行 myHA start/stop(启动/停止)之后,可以一键启动或者停止,Zookeeper,Hadoop高可用,Yarn,HistoryServer。
- 脚本内容
#! /bin/bashif [ $# -lt 1 ]then echo "No Args Input..." exit;fi# 一键启动和关闭 hdfs,zookeeper,yarn,historyservercase in"start"){ echo "----------启动zookeeper----------"for i in hadoop103 hadoop104 hadoop105do echo ---------- zookeeper $i 启动 ------------ssh $i "/opt/module/HA/zookeeper/bin/zkServer.sh start"done echo "---------- 启动hdfs------------" ssh hadoop102 "/opt/module/HA/hadoop-3.1.3/sbin/start-dfs.sh" echo "----------启动yarn----------" ssh hadoop103 "/opt/module/HA/hadoop-3.1.3/sbin/start-yarn.sh" echo "----------启动historyserver----------" ssh hadoop102 "/opt/module/HA/hadoop-3.1.3/bin/mapred --daemon start historyserver" echo "---------- hadoop HA启动成功------------"};;"stop"){ echo "----------关闭historyserver----------" ssh hadoop102 "/opt/module/HA/hadoop-3.1.3/bin/mapred --daemon stop historyserver" echo "----------关闭yarn----------" ssh hadoop103 "/opt/module/HA/hadoop-3.1.3/sbin/stop-yarn.sh" echo "----------关闭hdfs----------" ssh hadoop102 "/opt/module/HA/hadoop-3.1.3/sbin/stop-dfs.sh" echo "----------关闭zookeeper----------"for i in hadoop103 hadoop104 hadoop105do echo ---------- zookeeper $i 停止 ------------ssh $i "/opt/module/HA/zookeeper/bin/zkServer.sh stop"done echo "---------- hadoop HA停止成功------------"};;"status"){for i in hadoop103 hadoop104 hadoop105do echo ---------- zookeeper $i 状态 ------------ ssh $i "/opt/module/HA/zookeeper/bin/zkServer.sh status"done};;*) echo "Input Args Error";;esac四、一键启动可视化工具
- 脚本功能描述
supersetAndMysql 脚本,执行 supersetAndMysql start/stop 可以一键启动或关闭 Docker ,MySQL,Superset。
- 脚本注意事项
MySQL的版本必须是:mysql:5.7.42,Superset的版本必须是:amancevice/superset:0.37.2,否则需要自行到脚本中去修改版本号。
- 脚本内容
#! /bin/bash# 具有一定局限性 msyql和superset 版本固定if [ $# -lt 1 ]then echo "No Args Input..." exit;ficase in"start"){ echo "----------打开docker----------" sudo systemctl start docker echo "----------启动mysql----------" sudo docker start $mysql echo "----------启动superset----------" sudo docker start $superset};;"stop"){ echo "----------关闭superset----------" sudo docker stop $superset echo "----------关闭mysql----------" sudo docker stop $mysql echo "----------关闭docker----------" sudo systemctl stop docker};;esac五、结语
本次跟大家分享了Hadoop中一些好用的脚本,有不清楚的步骤欢迎给我留言!
✨ 这就是今天要分享给大家的全部内容了,我们下期再见!
- 脚本内容
- 脚本注意事项
- 脚本功能描述
- 脚本内容
- 脚本功能描述
- 脚本内容
- 脚本注意事项
- 脚本功能描述
上一篇:机房浸水绳放哪里?