大数据集群中实用的三个脚本文件解析与应用

news2024/11/25 12:58:16

       

目录

一、jps - cluster.sh 脚本文件

(一)背景与功能

(二)使用方法

二、集群文件分发脚本 xsync.sh

(一)背景与问题

(二)功能与实现原理

(三)脚本编写与注意事项

(四)使用案例

三、命令同步执行脚本 xcall.sh

(一)背景与需求

(二)脚本创建与权限设置

(三)脚本内容解析

(四)使用案例与注意事项

四、总结


         在大数据集群管理和运维过程中,高效地执行各种操作对于提升工作效率至关重要。本文将详细介绍三个在大数据集群环境下非常实用的脚本文件:jps - cluster.shxsync.shxcall.sh,包括它们的功能、使用方法以及相关注意事项,帮助读者更好地理解和应用这些脚本,提升大数据集群管理的便利性和效率。

一、jps - cluster.sh 脚本文件

(一)背景与功能

        在大数据集群中,通常需要查看各个服务器上正在运行的服务。如果集群中有多台服务器,逐个在每台服务器上输入jps命令查看服务情况会非常繁琐。jps - cluster.sh脚本文件就是为了解决这个问题而设计的。通过这个脚本,我们可以在bigdata01这台服务器上执行一个命令,就能获取整个集群(假设有三台服务器:bigdata01bigdata02bigdata03)上所有正在运行的jps信息,大大提高了查看服务启动情况的效率。

(二)使用方法

  1. 脚本创建与编辑
    首先,我们需要将所有自定义的脚本文件存放在/usr/local/bin目录下。使用vi jps - cluster.sh命令创建并编辑脚本文件。编辑完成后保存并退出。
    #!/bin/bash
    USAGE="使⽤⽅法:sh jps-cluster.sh"
    NODES=("bigdata01" "bigdata02" "bigdata03")
    for NODE in ${NODES[*]};do
    echo "--------$NODE--------"
    ssh $NODE "/opt/installs/jdk/bin/jps"
    done
    echo "------------------------------------------"
    echo "--------jps-cluster.sh脚本执⾏完成!--------"

  2. 赋予权限
    为了能够在任何地方都能执行该脚本,需要给jps - cluster.sh赋予执行权限。可以使用chmod命令来实现。
    chmod 777 jps-cluster.sh

  3. 执行脚本
    bigdata01服务器上,直接执行jps - cluster.sh命令,即可获取整个集群的服务启动情况(通过jps信息展示)。

二、集群文件分发脚本 xsync.sh

(一)背景与问题

        在大数据集群管理中,经常需要进行文件的拷贝操作。如果按照传统的方式,如使用scp - r命令逐个将文件或文件夹拷贝到每台服务器(如scp - r 文件或者文件夹 root@主机名:/路径),操作过程会非常繁琐且耗时。特别是当集群中的服务器数量较多时,这种逐个拷贝的方式效率低下。

(二)功能与实现原理

        xsync.sh脚本文件就是为了实现快速的集群文件分发功能。它利用了rsync服务来实现高效的文件同步。不过需要注意的是,rsync服务需要安装在所有要分发文件的电脑上。
这个脚本的核心功能是可以通过一个命令将文件分发到所有的 Linux 服务器,而不需要逐个进行长拷贝操作。

(三)脚本编写与注意事项

在所有的分发的电脑上安装 rsync

yum install -y rsync
注意事项

        一定要注意:此脚本文件,不要在windows进行编辑,否则会报错,全程使用linux进行编辑,原因是windows中的字符集和linux中的不一样。

脚本文件
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
echo No Enough Arguement!
exit;
fi

#2. 遍历集群所有机器
for host in bigdata02 bigdata03
do
echo ====================    $host    ====================
#3. 递归遍历所有目录
for file in $@
do
#4 判断文件是否存在
if [ -e $file ]
then
#5. 获取全路径
pdir=$(cd -P $(dirname $file); pwd)
echo pdir=$pdir

#6. 获取当前文件的名称
fname=$(basename $file)
echo fname=$fname

#7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
ssh $host "source /etc/profile;mkdir -p $pdir"

#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
rsync -av $pdir/$fname $USER@$host:$pdir
else
echo $file Does Not Exists!
fi
done
done
赋予权限 

为了能够在任何地方都能执行该脚本,需要给 xsync.sh赋予执行权限。可以使用chmod命令来实现。

chmod 777  xsync.sh

(四)使用案例

        使用xsync.sh脚本非常简单,例如xsync.sh /etc/profile可以将/etc/profile文件同步到其他服务器。你可以将任何想要同步的文件或者文件夹作为参数传递给xsync.sh脚本,如xsync.sh /etc/hosts可以将hosts文件同步给其他两台电脑。

xsync.sh   跟上你想同步的文件或者文件夹都可以
xsync.sh  /etc/hosts   将hosts文件同步给其他两台电脑。

三、命令同步执行脚本 xcall.sh

(一)背景与需求

        在大数据集群管理中,有时候需要在多台服务器上同步执行相同的命令。例如,安装软件包(如yum install -y rsync)、查看网络配置(ifconfig)等操作,如果在每台服务器上分别执行这些命令会很麻烦。xcall.sh脚本文件就是为了满足这种在多台电脑上同步执行一个命令的需求而设计的。

(二)脚本创建与权限设置

使用vi xcall.sh创建脚本文件
#!/bin/bash

params=$@
i=1
for (( i=1 ; i <= 3 ; i = $i + 1 )) ; do
    echo ============= bigdata0$i $params =============
    ssh bigdata0$i "$params"
done
通过chmod赋予执行权限
chmod 777 xcall.sh

(三)脚本内容解析

        xcall.sh脚本通过bash实现。它首先获取输入的参数params,然后通过一个for循环,从i = 1i <= 3(这里假设集群中有三台服务器:bigdata01bigdata02bigdata03)。对于每一台服务器(bigdata0$i),会通过ssh执行输入的参数命令$params,并在执行前输出相应的信息,如============= bigdata0$i $params =============

(四)使用案例与注意事项

  1. 使用案例
    可以使用xcall.sh hostname在所有服务器上查看主机名,xcall.sh ifconfig查看网络配置,xcall.sh yum install -y rsync在所有服务器上安装rsync等。需要注意的是,对于一些命令,如jps,如果直接使用xcall.sh jps可能会失败,除非写全路径(如xcall.sh /opt/installs/jdk/bin/jps)。不过,我们可以通过创建软链接的方式来解决这个问题,例如xcall.sh ln -s /opt/installs/jdk/bin/jps /usr/local/bin/jps,这样修复后就可以使用xcall.sh jps了。
    xcall.sh  hostname
    xcall.sh  ifconfig
    xcall.sh  yum install -y rsync
    xcall.sh source /etc/profile
    
    不能是xcall.sh jps
    除非写全路径:xcall.sh /opt/installs/jdk/bin/jps
    可以将 jps这个命令做一个软链接到/usr/local/bin 下
    xcall.sh ln -s /opt/installs/jdk/bin/jps /usr/local/bin/jps
    这样一修复,就可以 xcall.sh jps 

  2. scp 相关注意
    在使用scp进行远程拷贝时,如果目标服务器上没有相应的文件夹,scp可以自行创建。这为文件分发和拷贝提供了一定的便利性,在与这些脚本结合使用时,需要考虑到这一特性。

四、总结

        在大数据集群管理中,jps - cluster.shxsync.shxcall.sh这三个脚本文件发挥了重要的作用。jps - cluster.sh方便了我们查看整个集群的服务启动情况,xsync.sh极大地提高了文件分发的效率,xcall.sh则让在多台服务器上同步执行命令变得轻松便捷。通过合理地使用这些脚本,大数据集群管理员可以更加高效地完成各种管理和运维任务,减少手动操作带来的繁琐和错误。同时,在使用脚本过程中,要注意相关的权限设置、编辑环境以及一些特殊命令的处理方式,确保脚本能够稳定、正确地运行,为大数据集群的稳定运行提供有力保障。在实际的大数据环境中,这些脚本可以根据具体的集群架构和需求进行进一步的优化和扩展,以适应更复杂的场景和更多的功能需求。希望本文对读者理解和应用这些脚本文件有所帮助,让大家在大数据集群管理中更加得心应手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据分享】1981-2024年我国逐日平均气温栅格数据(免费获取)

气象数据一直是一个价值很高的数据&#xff0c;它被广泛用于各个领域的研究当中。这其中&#xff0c;又以平均气温数据最为常用&#xff01;之前我们分享过来源于美国国家海洋和大气管理局&#xff08;NOAA&#xff09;下设的国家环境信息中心(NCEI)发布的1929-2024年全球站点的…

多模态PaliGemma——Google推出的基于SigLIP和Gemma的视觉语言模型

前言 本文怎么来的呢&#xff1f;其实很简单&#xff0c;源于上一篇文章《π0——用于通用机器人控制的流匹配VLA模型&#xff1a;一套框架控制7种机械臂(改造了PaliGemma和ACT的3B模型)》中的π0用到了PaliGemma 故本文便来解读下这个PaliGemma 第一部分 PaliGemma 1.1 Pal…

开源模型应用落地-glm模型小试-glm-4-9b-chat-Gradio集成(三)

一、前言 GLM-4是智谱AI团队于2024年1月16日发布的基座大模型&#xff0c;旨在自动理解和规划用户的复杂指令&#xff0c;并能调用网页浏览器。其功能包括数据分析、图表创建、PPT生成等&#xff0c;支持128K的上下文窗口&#xff0c;使其在长文本处理和精度召回方面表现优异&a…

ABAP开发学习——OLE

目录 1.概览 2.OEL的实现方式 3.OLE的配置 4.OLE的实现 4.1 OLE Demo 4.2 OLE实现的步骤 5.OLE实现样例 5.1 OLE中的的类型转换 5.2 变量定义 5.3 创建对象 5.4 表单页的操作 5.5 设置文件保存路径 5.6 文件是否可见 5.7 单元格操作 5.7.1 给单元格赋值 5.7.2…

在Java中,实现数据库连接通常使用JDBC

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

单臂路由实现不同VLAN之间设备通信

转载请注明出处 本实验为单臂路由配置&#xff0c;目的为让不同VLAN之间的设备能够互相通信。 1.首先&#xff0c;按照要求配置两个pc的ip地址&#xff0c;以pc0为例子&#xff1a; 2在交换机创建vlan10和vlan20 3.划分vlan&#xff0c;pc0为vlan10的设备&#xff0c;pc1为vla…

前后端交互通用排序策略

目录 排序场景 排序实现思路 1. 静态代码排序实现 2.数据库驱动排序实现 3. 基于Java反射的动态排序实现 通用排序工具 SortListUtil 结语 排序场景 在面向前端数据展示的应用场景中&#xff0c;我们旨在实现一个更加灵活的排序机制&#xff0c;该机制能够支持对从后端传递…

【华为云-云驻共创】UCS跨云多活容灾:让业务高可用不再是难题

【摘要】云原生应用深入到企业各个业务场景&#xff0c;云原生正在走向分布式化&#xff0c;跨云跨域统一协同治理&#xff0c;保证一致应用体验&#xff0c;这些新的需求日益凸显。而容灾是确保服务高可用的保障&#xff0c;但即使应用部署在云上&#xff0c;也无法避免市政方…

Linux内核编程(十九)SPI子系统的应用与驱动编写

本文目录 一、 SPI驱动框架图二、编写SPI驱动device框架三、编写SPI驱动driver框架四、实验一编写mcp2515驱动1. 注册字符设备或杂项设备框架2. SPI写数据3. SPI读寄存器数据 4. MCP2515相关配置 对于SPI基础知识这里不做过多讲解&#xff0c;详情查看&#xff1a;SPI基础知识实…

谍影重重5.0

打开流量包可以发现&#xff0c;流量中含有大量的smb加密通信&#xff0c;并且使用了ntlm v2加密协议进行身份认证 包过滤ntlmssp 认证后smb协议进行了大量的数据传输 取出tom的包内数据 得到以下数据 username:tomdomain: .NTProofStr: ca32f9b5b48c04ccfa96f35213d63d75NT…

qt QAbstractItemModel详解

1. 概述 QAbstractItemModel是Qt框架中的一个核心抽象基类&#xff0c;在Qt的模型/视图架构中扮演着至关重要的角色。这个类提供了一个接口&#xff0c;用于表示和管理数据&#xff0c;但不直接处理数据的存储。它的主要功能是为视图组件&#xff08;如QListView、QTableView和…

华为OD机试 - 无重复字符的元素长度乘积的最大值(Python/JS/C/C++ 2024 C卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

【C++之STL】一文学会使用 string

文章目录 1. STL导读1. 1 什么是STL1. 2 STL的版本1. 3 STL六大组件1. 4 STL的重要性1. 5 STL的学习1. 6 STL系列博客的规划 2. string2. 1 为什么学习string类?2. 2 标准库中的string2. 3 基本构造2. 4 尾插与输出运算符重载2. 5 构造函数2. 6 赋值运算符重载2. 7 容量操作2.…

【分布式】分布式锁设计与Redisson源码解析

分布式锁 分布式锁是一种在分布式计算环境中用于控制多个节点&#xff08;或多个进程&#xff09;对共享资源的访问的机制。在分布式系统中&#xff0c;多个节点可能需要协调对共享资源的访问&#xff0c;以防止数据的不一致性或冲突。分布式锁允许多个节点在竞争访问共享资源…

【实测有效】两个Ubuntu系统通过网线传输文件

基本思路是&#xff1a;连接网线后&#xff0c;通过设置静态IP&#xff0c;将两台电脑配置在同一个局域网内&#xff0c;再进行文件传输。 一、物理连接 使用网线将两台电脑的网口连接起来。 二、静态IP设置 两台电脑均需要对各自的静态IP进行设置。 1、查看电脑的IP地址 1&a…

Android camera2

一、序言 为了对阶段性的知识积累、方便以后调查问题&#xff0c;特做此文档&#xff01; 将以camera app 使用camera2 api进行分析。 (1)、打开相机 openCamera (2)、创建会话 createCaptureSession (3)、开始预览 setRepeatingRequest (4)、停止预览 stopRepeating (5)、关闭…

【Redis_Day3】Redis通用命令

【Redis_Day3】Redis通用命令 redis客户端的三种形态redis的快与慢redis通用命令阅读redis官方文档redis中两个核心命令set命令get命令 redis全局命令keys命令&#xff1a;查询当前服务器上的key生产环境 exists命令&#xff1a;判定key是否存在del命令&#xff1a;删除指定的k…

静态库、动态库、framework、xcframework、use_frameworks!的作用、关联核心SDK工程和测试(主)工程、设备CPU架构

1.1库的概念 库&#xff1a;程序代码的集合&#xff0c;编译好的二进制文件加上头文件供使用&#xff0c;共享程序代码的一种方式。 1.2库的分类 根据开源情况分为&#xff1a;开源库&#xff08;能看到具体实现&#xff09;、闭源库&#xff08;只公开调用的的接口&#xf…

小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统

前言 现在已经学习了很多与Java相关的知识&#xff0c;但是迟迟没有进行一个完整的实践&#xff08;之前这个项目开发到一半&#xff0c;很多东西没学搁置了&#xff0c;同时原先的项目中也有很多的问题&#xff09;&#xff0c;所以现在准备从零开始做一个基于SpringBootVue的…

【C++、数据结构】哈希表——散列表(一)(概念/总结)

「前言」 &#x1f308;个人主页&#xff1a; 代码探秘者 &#x1f308;C语言专栏&#xff1a;C语言 &#x1f308;C专栏&#xff1a; C / STL使用以及模拟实现 &#x1f308;数据结构专栏&#xff1a; 数据结构 / 十大排序算法 &#x1f308;Linux专栏&#xff1a; Linux系统编…