大数据 | (六)Hadoop集群启停脚本

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据 | (六)Hadoop集群启停脚本

一、前言


hello,大家好!这篇文章是我在使用Hadoop集群时使用到的启停脚本的详细内容与感想,希望能帮助到大家!

本篇文章收录于 初心大数据 专栏。


🧑 个人简介:大家好,我是初心,一个很菜但没放弃的人✨

💕 座右铭:理想主义的花,终究会盛开在浪漫主义的土壤里!🍺

💕 欢迎大家:这里是CSDN,我记录知识的地方,欢迎大家一起交流,有问题请私信😘


事情是这样的:我们在使用Hadoop集群时,一打开虚拟机,总是要在 NameNode 节点上启动 Hdfs ,在 ResourceManager 节点上启动 yarn ,关闭的时候也是,是不是有点麻烦呢?有没有能够让我们在一个节点上,执行一个命令,就可以把 Hdfs 、yarn以及历史服务器打开呢?答案是有! 接下来让我为大家介绍——Hadoop启停脚本以及 jps 脚本。


二、Hadoop集群启停脚本


2.1 启停脚本及其背景


我们搭建好了 Hadoop 集群之后,需要启动 Hdfs 和 yarn,因为Sqoop执行数据导入的时候,就是在执行任务,而 yarn 是任务调度管理器,所以 yarn 也是必要的。以前我们开启、关闭 Hdfs 和 yarn 都是通过下面的命令:


在Hadoop102上开启 Hdfs:

sbin/start-dfs.sh

在Hadoop103上开启 yarn:

sbin/start-yarn.sh

在Hadoop102上开启历史服务器:

./bin/mapred --daemon start historyserver

在Hadoop103上关闭 yarn:

sbin/stop-yarn.sh

在Hadoop102上关闭 Hdfs:

sbin/stop-dfs.sh


在Hadoop102上开启历史服务器:

./bin/mapred --daemon stop historyserver


一次使用,我们就要执行四个命令,还要在不同的机器上执行,是不是有点麻烦呢?有没有什么办法,可以让我们执行一次就启动或者关闭 hdfs 和 yarn 呢?答案是有,那就是使用 shell 脚本。


首先跟大家简单讲讲这个脚本,脚本名为 myhadoop.sh,然后再告诉大家怎么使用,其实在Linux中使用什么脚本的方式都是几乎一样的。


  • Hadoop启停脚本
#! /bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit;
fi
case $1 in
"start")
        echo "-----*-----启动hadoop集群-----*-----"
        echo "----------启动hdfs----------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
        echo "----------启动yarn----------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
        echo "----------启动historyserver----------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
        echo "-----*-----关闭hadoop集群-----*-----"
        echo "----------关闭historyserver----------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
        echo "----------关闭yarn----------"
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
        echo "----------关闭hdfs----------"
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error"
;;
esac


上面的脚本的功能就是如果执行脚本时,后面没有参数,就输出"No Args Input…";


如果不是参数 start 或者 stop ,就输出"Input Args Error";


如果是接着 start 参数,就通过 ssh 命令,连接到 Hadoop102主机开启 hdfs,连接到Hadoop103主机,开启yarn,再连接到Hadoop102,开启历史服务器;


如果是stop命令,就一次关闭历史服务器、yarn和hdfs。


2.2 使用方法


  • 1.将 myhadoop.sh 脚本上传到 Linux 系统中的 /usr/local/bin目录下。


8ceee0440bce4c35ad21774aafb7fbfb.png


为什么选择这个目录?因为这个目录是在 Linux 系统的环境变量目录中的,在环境变量目录中的可执行文件,就是我们的可执行脚本(也就是自定义命令)。

查看 Linux 系统的环境变量命令:

echo $PATH


cd9b49d871e94c1f877b3f51d5bfbe7b.png

  • 2.将脚本所属用户和组修改为当前用户

如果大家平时使用的不是 root 用户操作,那么文件上传上来时,它的所属用户和组可能是 root ,为了能够在普通用户下也能操作这个脚本,就要将它的所属用户和组修改为当前用户(这里我的当前用户是 sky )。

sudo chown sky:sky myhadoop.sh -R


  • 3.重命名脚本
mv myhadoop.sh myhadoop


  • 4.为脚本赋予可执行权限
sudo chmod 777 myhadoop


  • 5.测试脚本能否使用

使用 myhadoop 命令来开启 hdfs 和 yarn 以及历史服务器:

myhadoop start


3e59b78ca3c74f6ea79ef0d6525440f9.png


使用 myhadoop 命令来关闭历史服务器、 hdfs 和 yarn :

myhadoop stop



7cfdcfe47ec048f29b068f334aa16836.png

执行过程正确,证明脚本可用,这下我们开启 hdfs 和 yarn 就方便多了!


三、jps脚本


以前我们测试 hdfs、yarn以及历史服务器是否启动,都是通过 jps 命令查看Java进程来实现的,我们需要在Hadoop102、Hadoop103以及Hadoop104上分别执行 jps 命令,是不是也有点麻烦呢?这里使用 jpsall.sh 脚本,可以实现执行一次,分别在三台节点上执行 jps 命令。


  • jps测试脚本
#! /bin/bash
for host in hadoop102 hadoop103 hadoop104
do
        echo ----------$host----------
        ssh $host jps
done


上面脚本的功能就是遍历Hadoop102-Hadoop104,然后通过 ssh 命令进入到三台主机,分别执行 jps 命令。

使用这个jpsall.sh脚本的步骤和上面使用 myhadoop 脚本是一样的,下面就直接演示结果:

212dec6af08640f3be72301b4169bb58.png

这样看来,是不是也方便多了呢!


四、关机脚本


脚本就是这么的有趣!同学们如果还有喜欢脚本的,可以留言或者私信和我交流。下面再跟大家分享一个 关机脚本 ,可以执行一次,分别关闭 hadoop104,hadoop103,hadoop102。

  • 关机脚本
#! /bin/bash
if [ $# -lt 1 ]
 then 
   echo "NO Args Input Error..."
   exit     
fi          
case $1 in  
"s")
  echo "---------------shutdown now---------------"
  ssh hadoop104 "sudo shutdown -h now"
  ssh hadoop103 "sudo shutdown -h now"
  ssh hadoop102 "sudo shutdown -h now"
;;  
"r")
  echo "---------------reboot---------------"
  ssh -t hadoop104 "sudo reboot"
  ssh -t hadoop103 "sudo reboot"
  ssh -t hadoop102 "sudo reboot"
;;
*)
echo "Input args Error..."
;;
esac


五、结语


本文主要讲解了Hadoop集群启停脚本、jps脚本以及关机脚本,希望对大家有帮助。


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

✨ 本文由初心原创,首发于CSDN博客。

🍻 如果你喜欢的话,记得点赞收藏关注,我在CSDN等你!


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
8月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
394 79
|
6月前
|
分布式计算 Hadoop Java
CentOS中构建高可用Hadoop 3集群
这个过程像是在一个未知的森林中探索。但当你抵达终点,看到那个熟悉的Hadoop管理界面时,所有的艰辛都会化为乌有。仔细观察,尽全力,这就是构建高可用Hadoop 3集群的挑战之旅。
256 21
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
492 6
|
7月前
|
数据采集 数据可视化 大数据
Python入门修炼:开启你在大数据世界的第一个脚本
Python入门修炼:开启你在大数据世界的第一个脚本
167 6
|
11月前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
544 4
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
538 2
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
449 1
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
434 1
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
528 0
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
283 2
下一篇
oss云网关配置