小工具知识网

当前位置: 首页 > 行业知识 > 【Hadoop】好用的脚本分享

行业知识

【Hadoop】好用的脚本分享

2026-10-19 23:16:14 来源:互联网转载

知识目录

  • 一、写在前面✨
  • 二、一键安装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中一些好用的脚本,有不清楚的步骤欢迎给我留言!

                    ✨ 这就是今天要分享给大家的全部内容了,我们下期再见!

上一篇:机房浸水绳放哪里?

下一篇:Win10在线安装教程,轻松上手,一步到位系统安装指南