大数据之Linux部署常用命令脚本封装

文章目录

    • 编写集群命令执行脚本
      • xcall集群命令执行
        • 1. 脚本需求
        • 2. 需求分析
        • 3. 脚本实现
          • 3.1 创建脚本存放目录
          • 3.2 编写xcall脚本
          • 3.3 修改脚本执行权限
          • 3.4 测试脚本
    • 编写集群分发脚本
      • xsync集群分发脚本
        • 1. 脚本需求
        • 2. 需求分析
        • 3. 脚本实现
          • 3.1 创建脚本存放目录
          • 3.2 编写xsync脚本
          • 3.3 修改脚本执行权限
          • 3.4 测试脚本

在这里插入图片描述

编写集群命令执行脚本

xcall集群命令执行

1. 脚本需求
  • 需求: 简化对多个远程主机执行相同命令的过程。允许用户通过一个单一的命令行调用,在一组预定义的主机上执行任意命令。方便集群管理和自动化任务,减少重复工作并提高效率。
2. 需求分析
  • 使用xcall 命令进行命令执行, 例如
    xcall ls -al /
    
  • 期望脚本xcall 能够在所有预定义的主机上查看根目录/ 的内容。
3. 脚本实现
  • 脚本存放在/home/bigdata/bin目录下,在~/.bashrc中添加以下内容,以便bigdata用户可以在系统的任何位置直接执行。
    export PATH=$PATH:/home/bigdata/bin
    
  • 使环境变量生效 source ~/.bashrc
3.1 创建脚本存放目录
  • /home/bigdata目录下创建bin文件夹:

    mkdir bin
    
  • 脚本存放在/home/bigdata/bin目录下,以便bigdata用户可以在系统的任何位置直接执行。

3.2 编写xcall脚本
  • /home/bigdata/bin目录下创建xall文件:

    cd /home/bigdata/bin
    vim xcall
    
  • 编写脚本内容:

    #!/bin/bash
    # 定义主机名数组
    hosts=("hadoop101" "hadoop102" "hadoop103")
    # 检查是否有外部参数传递给脚本
    if [ $# -eq 0 ]; thenecho "Usage: $0 <command>"exit 1
    fi# 遍历主机数组,对每个主机执行 SSH 命令
    for host in "${hosts[@]}"; doecho "-------- $host --------"ssh "$host" "$*"
    done
    
3.3 修改脚本执行权限
  • 使xcall脚本具有执行权限:
    chmod +x xcall
    
3.4 测试脚本
  • 测试xcall脚本是否正常工作:
    xcall ls -al /
    

编写集群分发脚本

xsync集群分发脚本

1. 脚本需求
  • 需求:实现循环复制文件到所有节点的相同目录下。
2. 需求分析
  • 使用rsync命令进行原始拷贝,例如:
    rsync -av /opt/module bigdata@hadoop102:/opt/
    
  • 期望脚本xsync能够同步指定的文件名称。
3. 脚本实现
  • 脚本存放在/home/bigdata/bin目录下,以便bigdata用户可以在系统的任何位置直接执行。
3.1 创建脚本存放目录
  • /home/bigdata目录下创建bin文件夹:
    mkdir bin
    
3.2 编写xsync脚本
  • /home/bigdata/bin目录下创建xsync文件:
    cd /home/bigdata/bin
    vim xsync
    
  • 编写脚本内容:
    #!/bin/bashhosts=("hadoop101" "hadoop102" "hadoop103")
    # 1. 判断参数个数
    if [ $# -lt 1 ]
    thenecho "Not Enough Arguments!"exit 1
    fi# 2. 遍历集群所有机器
    for host in "${hosts[@]}"; doecho "====================  $host  ==================="# 3. 遍历所有目录,挨个发送for file in "$@"; do# 4. 判断文件是否存在if [ -e "$file" ]then# 5. 获取父目录pdir=$(cd -P "$(dirname "$file")"; pwd)# 6. 获取当前文件的名称fname=$(basename "$file")ssh $host "mkdir -p \"$pdir\""rsync -av "$pdir/$fname" "$host:$pdir"elseecho "$file does not exist!"fidone
    done
    
3.3 修改脚本执行权限
  • 使xsync脚本具有执行权限:
    chmod +x xsync
    
3.4 测试脚本
  • 测试xsync脚本是否正常工作:
    xsync /path/to/file_or_directory
    

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

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

相关文章

计算机毕业设计PyFlink+Spark+Hive民宿推荐系统 酒店推荐系统 民宿酒店数据分析可视化大屏 民宿爬虫 民宿大数据 知识图谱 机器学习

本科毕业设计(论文) 开题报告 学院 &#xff1a; 计算机学院 课题名称 &#xff1a; 民宿数据可视化分析系统的设计与实现 姓名 &#xff1a; 庄贵远 学号 &#xff1a; 2020135232 专业 &#xff1a; 数据科学与大数据技术 班级 &#xff1a; 20大数据本科2…

微信小程序怎么使用本地存储

微信小程序提供了丰富的API来实现本地存储功能&#xff0c;主要通过以下几个方法来进行数据的存取&#xff1a; 1. wx.setStorageSync() 功能&#xff1a;将数据存储在本地缓存中指定的key中。这是一个同步接口。 用法&#xff1a; Javascript 1wx.setStorageSync(key, val…

重温react-06(初识函数组件和快速生成格式的插件使用方式)

开始 函数组件必然成为未来发展的趋势(个人见解),总之努力的去学习,才能赚更多的钱.加油呀! 函数组件的格式 import React from reactexport default function LearnFunction01() {return (<div>LearnFunction01</div>) }以上是函数式组件的组基本的方式 快捷生…

基于DSMM数据安全能力建设方案的落地性评估指标

写在前面&#xff1a; 随着信息技术的迅猛发展&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;数据安全问题也随之而来&#xff0c;如何确保数据的安全性、完整性和可用性&#xff0c;已成为企业面临的重要挑战。DSMM&#xff08;数据安全能力成熟度模型&#x…

混合专家模型(MoE)的前世今生

在文章《聊聊最近很火的混合专家模型&#xff08;MoE&#xff09;》中&#xff0c;我们简单介绍了MoE模型的定义和设计&#xff0c;并且比较了MoE和Dense模型的区别&#xff0c;今天我们继续来回顾一下MoE模型发展的历史和最新的发展现状。 从去年GPT-4发布至今&#xff0c;MoE…

[C++][设计模式][中介者模式]详细讲解

目录 1.动机2.模式定义3.要点总结 1.动机 在软件构建过程中&#xff0c;经常会出现多个对象相互关联的情况&#xff0c;对象之间常常会维持一种复杂的引用关系&#xff0c;如果遇到一些需求的更改&#xff0c;这种直接的引用关系将面临不断的变化在这种情况下&#xff0c;可以…

SpringDataJPA系列(2)Commons核心Repository

SpringDataJPA系列(2)Commons核心Repository Spring Data Commons依赖关系 我们通过 Gradle 看一下项目依赖&#xff0c;了解一下 Spring Data Common 的依赖关系 通过上图的项目依赖&#xff0c;不难发现&#xff0c;数据库连接用的是 JDBC&#xff0c;连接池用的是 HikariC…

【软件工程中的演化模型及其优缺点】

文章目录 1. 增量模型什么是增量模型&#xff1f;优点缺点 2. 增量-迭代模型什么是增量-迭代模型&#xff1f;优点缺点 3. 螺旋模型什么是螺旋模型&#xff1f;优点缺点 1. 增量模型 什么是增量模型&#xff1f; 增量模型是一种逐步增加功能和特性的开发方法。项目被划分为多…

使用label-studio对OCR数据进行预标注

导读 label-studio作为一款数据标注工具相信大家都不陌生&#xff0c;对于需要进行web数据标注协同来说应该是必备工具了&#xff0c;标注的数据类型很全涉及AI的各个任务(图像、语音、NLP、视频等)&#xff0c;还支持自定义涉及模版。 然而&#xff0c;我们在标注数据的过程…

Veno File Manager(VFM)v4.2.7 中文包整理

Veno File Manager&#xff08;VFM&#xff09;是一个简单灵活的即插即用文件管理器&#xff0c;易于使用且具有许多选项。将文件发送给您的客户&#xff0c;使用专用文件夹创建新用户&#xff0c;或仅用作您的个人文件云。从任何设备访问&#xff0c;用户管理和从直观的管理面…

昇思MindSpore学习笔记6--网络构建

摘要&#xff1a; 记录了昇思MindSpore神经网络模型的定义构建、模型分层&#xff0c;以及获取模型参数的步骤方法。 一、神经网络模型概念 神经网络模型是由神经网络层和Tensor操作构成。 mindspore.nn实现了神经网络层。 mindspore.nn.Cell是构建神经网络的基类。 支持子…

《学透 Spring》学习笔记 | 笔记1 | Spring 家族

Spring 家族 概述 2003 年&#xff0c;Rod Johnson 对 J2EE&#xff08;现在的 Java EE&#xff09; 存在的各种问题进行深入的剖析&#xff0c;并提出了一套解决方案 —— Spring Framework&#xff0c;这就是最早期的 Spring。Spring Framework 对 J2EE 进行了一系列补充&a…

在线一起学习平台设计

设计一个在线一起学习平台&#xff0c;旨在促进远程协作学习&#xff0c;提升学习效率和体验。以下是设计的基本框架和关键功能&#xff1a; 1. 用户管理模块 注册与登录&#xff1a;用户可以通过邮箱、手机号或社交媒体账号注册和登录。个人资料&#xff1a;用户可以完善个人…

OpenCV 调用自定义训练的 YOLO-V8 Onnx 模型

一、YOLO-V8 转 Onnx 在本专栏的前面几篇文章中&#xff0c;我们使用 ultralytics 公司开源发布的 YOLO-V8 模型&#xff0c;分别 Fine-Tuning 实验了 目标检测、关键点检测、分类 任务&#xff0c;实验后发现效果都非常的不错&#xff0c;但是前面的演示都是基于 ultralytics…

【贪心】【哈希表】个人练习-Leetcode-846. Hand of Straights

题目链接&#xff1a;https://leetcode.cn/problems/hand-of-straights/ 题目大意&#xff1a;给出一数列&#xff0c;求是否能刚好将它们分成若干组&#xff0c;每组的元素数量为groupSize&#xff0c;并且元素连续。 思路&#xff1a;因为题目的限制很死&#xff0c;如果能…

C语言分支和循环(下)

C语言分支和循环&#xff08;下&#xff09; 1. 随机数生成1.1 rand1.2 srand1.3 time1.4 设置随机数的范围 2. 猜数字游戏实现 掌握了前面学习的这些知识&#xff0c;我们就可以写⼀些稍微有趣的代码了&#xff0c;比如&#xff1a; 写⼀个猜数字游戏 游戏要求&#xff1a; 电…

第6章 复制

文章目录 前言1.配置1.1建立复制1.2断开复制1.3 安全性1.4 只读1.5 传输延迟 2. 拓扑2.1.一主一从结构2.2.一主多从结构2.3.树状主从结构 3.原理3.1复制过程3.2数据同步3.3全量复制 前言 复制功能&#xff0c;实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础&…

智能交通(2)——IntelliLight智能交通灯

论文分享&#xff1a;IntelliLight | Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mininghttps://dl.acm.org/doi/10.1145/3219819.3220096摘要 智能交通灯控制对于高效的交通系统至关重要。目前现有的交通信号灯大多由手…

【Python系列】列表推导式:简洁而强大的数据操作工具

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

hnust 1949: 顺序表实现(第二部分)

hnust 1949: 顺序表实现(第二部分) 题目描述 拷贝下面的代码&#xff0c;然后将顺序表实现第一部分的工作填入&#xff0c;再完成顺序表的GetElem&#xff0c;LocateElem和ListDelete操作&#xff0c;其他地方不得改动。 #include #include #include using namespace std; #…