0


Hadoop | 好用的脚本分享

知识目录

一、写在前面✨

大家好!我是初心,希望我们一路走来能坚守初心!

🏠 个人主页:初心%个人主页

今天跟大家分享的文章是 **

在Hadoop使用过程中,可以提升我们学习效率的脚本分享。

** ,希望能帮助到大家!本篇文章收录于 初心 的 Hadoop 专栏。

💕 不努力就只能听到别人的好消息。』—— 佚名「网易云音乐热评」

二、一键安装HA🍭

  • <1>脚本功能描述

**

一键安装HA脚本主要用于安装HA高可用集群环境,避免复杂的搭建过程。

**

  • <2>脚本注意事项

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/)

  • <3>脚本内容
#!/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/$pathFileNameecho"----------4.安装psmisc插件----------"
    sudo yum install -y psmisc
    ssh $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$fourdo
        sudo scp /etc/profile.d/$pathFileName$i:/etc/profile.d/
    done
    echo"----------2.刷新环境变量----------"for i in $two$three$fourdo
        ssh $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$fourdoecho---------- 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$threedoecho---------- 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 namenode
    ssh $two"hdfs namenode -bootstrapStandby"echo"----------5.启动集群----------"start-dfs.sh
    echo"----------第八步已完成----------"echo"----------Hadoop HA高可用搭建已完成----------"}# 调用上述函数完成安装HA
testRead
getFilesAndTargetDir
getUserPathFileName
unpackSoftwarePackage
changeName
copyConfigurationFiles
createDir
xsyncHA
changeMyIdOfZK
startZKOnThreeNode
startHadoop

三、Hadoop一键启动🔥

  • <1>脚本功能描述

**

这个脚本的功能就是执行 myHA start/stop(启动/停止)之后,可以一键启动或者停止,Zookeeper,Hadoop高可用,Yarn,HistoryServer。

**

  • <2>脚本内容
#! /bin/bashif[ $# -lt 1 ]
then
    echo"No Args Input..."exit;
fi

# 一键启动和关闭 hdfs,zookeeper,yarn,historyserver
case $1 in
"start"){echo"----------启动zookeeper----------"for i in hadoop103 hadoop104 hadoop105
    doecho---------- 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 hadoop105
    doecho---------- zookeeper $i 停止 ------------
        ssh $i"/opt/module/HA/zookeeper/bin/zkServer.sh stop"
    done
    echo"---------- hadoop HA停止成功------------"};;"status"){for i in hadoop103 hadoop104 hadoop105
    doecho---------- zookeeper $i 状态 ------------    
        ssh $i"/opt/module/HA/zookeeper/bin/zkServer.sh status"
    done
};;*)echo"Input Args Error";;
esac

四、一键启动可视化工具🍭

  • <1>脚本功能描述
supersetAndMysql 脚本,执行 supersetAndMysql start/stop 可以一键启动或关闭 Docker ,MySQL,Superset。
  • <2>脚本注意事项

MySQL的版本必须是:mysql:5.7.42,Superset的版本必须是:amancevice/superset:0.37.2,否则需要自行到脚本中去修改版本号。

  • <3>脚本内容
#! /bin/bash# 具有一定局限性 msyql和superset 版本固定if[ $# -lt 1 ]
then
    echo"No Args Input..."exit;
fi
case $1 in
"start"){echo"----------打开docker----------"
    sudo systemctl start docker
    echo"----------启动mysql----------"
    sudo docker start$mysqlecho"----------启动superset----------"
    sudo docker start$superset};;"stop"){echo"----------关闭superset----------"
    sudo docker stop $supersetecho"----------关闭mysql----------"
    sudo docker stop $mysqlecho"----------关闭docker----------"
    sudo systemctl stop docker
};;
esac

五、结语🔥

本次跟大家分享了Hadoop中一些好用的脚本,有不清楚的步骤欢迎给我留言!

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


本文转载自: https://blog.csdn.net/qq_62592360/article/details/131140537
版权归原作者 初心% 所有, 如有侵权,请联系我们删除。

“Hadoop | 好用的脚本分享”的评论:

还没有评论