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

news/2024/5/20 0:49:22 标签: hadoop, 大数据, hdfs


知识目录

  • 一、前言
  • 二、Hadoop集群启停脚本
    • 2.1 启停脚本及其背景
    • 2.2 使用方法
  • 三、jps脚本
  • 四、关机脚本
  • 五、结语

一、前言

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目录下。

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

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

echo $PATH

  • 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

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

myhadoop stop

执行过程正确,证明脚本可用,这下我们开启 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 脚本是一样的,下面就直接演示结果:

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

四、关机脚本

脚本就是这么的有趣!同学们如果还有喜欢脚本的,可以留言或者私信和我交流。下面再跟大家分享一个 关机脚本 ,可以执行一次,分别关闭 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等你!


http://www.niftyadmin.cn/n/311922.html

相关文章

BRC20懂Web3?探寻宗教式社区建设- Yuga Labs「猿」宇宙案例解析

前言 早前,NFT 领域最强IP 缔造者Yuga Labs官宣:将基于Ordinal 协议在比特币区块链上推出NFT 系列「TwelveFold 」,为比特币NFT 生态添加了催化剂。所以以太坊失宠了吗?事实上,据欧科云链OKLink多链浏览器数据显示&am…

OpenCV 直方图统计函数 cv::calcHist算是彻底弄明白了

参数说明 void calcHist( const Mat* images, int nimages,const int* channels, InputArray mask,OutputArray hist, int dims, const int* histSize,const float** ranges, bool uniform true, bool accumulate false );images 图像数组。每个图像的大小要一致&#xff0c…

【深度学习】第一门课 神经网络和深度学习 Week 2 神经网络基础

2.1 二元分类 前言 第二周的主题是学习神经网络的基础知识。 实现神经网络需要用到一些重要的技术和技巧,比如怎样处理包含大量样本的训练集。 在神经网络的计算中,还会有前向暂停、前向传播、反向暂停和反向传播等步骤,本周会对它们进行…

dom操作

<script>var htmlEldocument.documentElementvar bodyEldocument.bodyvar headEldocument.headvar doctypedocument.doctypeconsole.log(htmlEl,bodyEl,headEl,doctype)</script> ul>li{$}*5 节点之间的关系(极少用) 空行注释没标签包括的文字也算是一个节点 子…

lua实战(2)

目录 值和类型子类型类型字符串type (v) 值和类型 Lua是一种动态类型语言。这意味着变量没有类型;只有价值观才有意义。该语言中没有类型定义。所有值都有自己的类型。 Lua中的所有值都是一等值。这意味着所有的值都可以存储在变量中&#xff0c;作为参数传递给其他函数&…

Day02剑指offer-链表

视频地址&#xff1a;帅地玩编程 剑指 Offer 06. 从尾到头打印链表 输入一个链表的头节点&#xff0c;从尾到头反过来返回每个节点的值&#xff08;用数组返回&#xff09;。 概念 .val()方法 .val()无参数&#xff0c;获取匹配的元素集合中第一个元素的当前值.val( value…

IS200TREGH1BEC直流并励电动机的启动

​ IS200TREGH1BEC​​​​​​直流并励电动机的启动 要启动机器&#xff0c;电机在零速时产生的扭矩必须超过负载所需的扭矩。然后 TM − TL 将为正&#xff0c;d!/dt 也为正&#xff0c;机器加速。 通常&#xff0c;直流电机的电枢电阻在满载电流时会导致 1% 到 5% 的下降。…

中科院学术专用版GPT Academic项目实现

【写在最前】要完成GPT 学术优化 (GPT Academic)这个项目需要一些值得注意的地方&#xff1a; chatGPT账户有余额且未过期&#xff01;&#xff01;&#xff01;有代理工具&#xff08;类似Clash&#xff09; 1、代码克隆 https://github.com/binary-husky/gpt_academic 根据…