从零开始的Hadoop学习(三)| 集群分发脚本xsync

这篇具有很好参考价值的文章主要介绍了从零开始的Hadoop学习(三)| 集群分发脚本xsync。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Hadoop目录结构

  • bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
  • etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
  • lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
  • sbin目录:存放启动或停止Hadoop相关服务的脚本
  • share目录:存放Hadoop的依赖jar包、文档、和官方案例

2. Hadoop运行模式

本地模式伪分布式模式以及完全分布式模式

  • 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
  • 伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
  • 完全分布式模式:多台服务器组成分布式环境。生产环境使用。

2.1 本地运行模式(官方 WordCount)

  • 1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹

    [atguigu@hadoop102 hadoop-3.1.3]$ mkdir wcinput
    
  • 2)在wcinput文件下创建一个word.txt文件

    [atguigu@hadoop102 hadoop-3.1.3]$ cd wcinput
    
  • 3)编辑 word.txt 文件

    [atguigu@hadoop102 wcinput]$ vim word.txt
    

    在文件中输入如下内容

    hadoop yarn
    hadoop mapreduce
    atguigu
    atguigu
    
  • 4)回到Hadoop 目录/opt/module/hadoop-3.1.3

  • 5)执行程序

    [atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
    
  • 6)查看结果

    [atguigu@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000
    看到如下结果:
    atguigu 2
    hadoop  2
    mapreduce       1
    yarn    1
    

3.2 完全分布式运行模式(开发重点)

分析:

1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群
3.2.2 编写集群分发脚本 xsync

scp (secure copy) 安全拷贝

  • 1)scp 定义

    scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)

  • 2)基本语法

    scp  -r    $pdir/$fname    $user@$host:$pdir/$fname
    命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
    
  • 3)实际操作

    (a) 在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上。

    [atguigu@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212  atguigu@hadoop103:/opt/module
    

    (b) 在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。

    [atguigu@hadoop103 ~]$ scp -r atguigu@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/
    

    © 在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。

    [atguigu@hadoop103 opt]$ scp -r atguigu@hadoop102:/opt/module/* atguigu@hadoop104:/opt/module
    

rsync 远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync 和 scp 区别:用 rsync做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。

  • 1)基本语法

    rsync -av  $pdir/$fname  $user@$host:$pdir/$fname
    命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
    

    选项参数说明

    选项 功能
    -a 归档拷贝
    -v 显示复制过程
  • 2)实际操作

    (a) 删除hadoop103中/opt/module/hadoop-3.1.3/wcinput

    [atguigu@hadoop103 hadoop-3.1.3]$ rm -rf wcinput/
    

    (b) 同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103

    [atguigu@hadoop102 module]$ rsync -av hadoop-3.1.3/ atguigu@hadoop103:/opt/module/hadoop-3.1.3/
    

xsync集群分发脚本

  • 1)需求:循环复制文件到所有节点相同的目录下

  • 2)需求分析

    (a)rsync 命令原始拷贝:

    rsync  -av  /opt/module  atguigu@hadoop103:/opt/
    

    (b)期望脚本:xsync 要同步的文件名称

    (c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

    [atguigu@hadoop102 ~]$ echo $PATH
    /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin
    
  • 3)脚本实现

    (a)在/home/atguigu/bin 目录下创建 xsync 文件

    [atguigu@hadoop102 opt]$ cd /home/atguigu
    [atguigu@hadoop102 ~]$ mkdir bin
    [atguigu@hadoop102 ~]$ cd bin
    [atguigu@hadoop102 bin]$ vim xsync
    

    在该文件下编写如下代码

    #!/bin/bash
    
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
     echo Not Enough Arguement!
        exit;
    fi
    
    #2. 遍历集群所有机器
    for host in hadoop102 hadoop103 hadoop104
    do
        echo ====================  $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
                else
                    echo $file does not exists!
            fi
        done
    done
    

    (b)修改脚本 xsync 具有执行权限

    [atguigu@hadoop102 bin]$ chmod +x xsync
    

    (c)测试脚本

    [atguigu@hadoop102 ~]$ xsync /home/atguigu/bin
    

    (d)将脚本复制到 /bin 中,以便全局调用

    [atguigu@hadoop102 bin]$ sudo cp xsync /bin/
    

    (e)同步案件变量配置(root所有者)

    [atguigu@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
    

    注意:如果用了 sudo,那么xsync一定要给它的路径补全。

    让环境变量生效文章来源地址https://www.toymoban.com/news/detail-677954.html

    [atguigu@hadoop103 bin]$ source /etc/profile
    [atguigu@hadoop104 opt]$ source /etc/profile
    

到了这里,关于从零开始的Hadoop学习(三)| 集群分发脚本xsync的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Windows系统的Hadoop伪分布式模式部署-从零开始(我的学习记录)

    目录 前言 一.JDK的下载安装配置 1.JDK 下载 2.JDK 安装 3.JDK 环境变量配置 4.验证JDK安装是否成功 5.重点? 二.Hadoop部署以及工具集winutils 1.下载Hadoop解压/下载winutils以及\\\"安装\\\"         下载Hadoop和winutils         \\\"安装\\\"winutils 2.配置Hadoop环境变量/配置Hadoop文件 Hadoop配置环境变量

    2024年04月13日
    浏览(48)
  • 从零开始的Hadoop学习(六)| HDFS读写流程、NN和2NN工作机制、DataNode工作机制

    1.1 HDFS写数据流程 1.1.1 剖析文件写入 (1)客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 (2)NameNode 返回是否可以上传。 (3)客户端请求第一个 Block 上传到哪几个 DataNode 服务上。 (4)NameNode 返回 3个 DataN

    2024年02月10日
    浏览(39)
  • 跟我一起从零开始学python(十)Hadoop从零开始入门

    回顾之前讲了python语法编程 ,必修入门基础和网络编程,多线程/多进程/协程等方面的内容,后续讲到了数据库编程篇MySQL,Redis,MongoDB篇,和机器学习,全栈开发,数据分析前面没看的也不用往前翻,系列文已经整理好了: 1.跟我一起从零开始学python(一)编程语法必修

    2024年02月11日
    浏览(28)
  • 搭建hadoop集群,从安装虚拟机开始直到hadoop成功搭建

    搭建Hadoop集群   一、实验目的与要求 学习和掌握Hadoop的相关应用,首先必须得学会搭建Hadoop集群。本次实验将针对Hadoop集群的搭建内容进行演练。学会虚拟机的安装和克隆,Linux系统的网络配置和SSH配置,Hadoop集群的搭建和配置,Hadoop集群测试,熟悉Hadoop集群基本的操作。

    2023年04月08日
    浏览(33)
  • 大数据 | (六)Hadoop集群启停脚本

    hello,大家好! 这篇文章是我在使用Hadoop集群时使用到的启停脚本的详细内容与感想,希望能帮助到大家! 本篇文章收录于 初心 的 大数据 专栏。 🧑 个人简介:大家好,我是初心,一个很菜但没放弃的人✨ 💕 座右铭:理想主义的花,终究会盛开在浪漫主义的土壤里!🍺

    2024年02月08日
    浏览(31)
  • Linux从零搭建Hadoop集群(CentOS7+hadoop 3.2.0+JDK1.8+Mapreduce完全分布式集群案例)

    和相关配置版本 :Linux CentOS Hadoop Java 版本: CentOS7 Hadoop3.2.0 JDK1.8 虚拟机参数信息内存3.2G、处理器2x2、内存50G ISO:CentOS-7-x86_64-DVD-2009.iso 基本主从思路: 先把基础的设置(SSH、JDK、Hadooop、环境变量、Hadoop和MapReduce配置信息)在一台虚拟机(master)上配好,通过

    2024年02月05日
    浏览(57)
  • 从零开始在 Linux 上搭建 Hadoop 平台:一个详细的教程和必备配置文件

    在信息时代,大数据处理是企业发展必不可少的一部分。Hadoop 是一种分布式计算平台,能够高效地处理大数据集。然而,搭建 Hadoop 集群可以相当复杂,需要正确配置和调整多个组件。本文将向您展示如何从零开始在 Linux 上搭建 Hadoop,以及如何配置 Hadoop 的必备文件。 选择

    2024年02月08日
    浏览(42)
  • 从零开始Hadoop安装和配置,图文手把手教你,定位错误(已部署成功)

    既然你选择自己配置了,那么我想想和你聊一聊,相信我这对你整体配置Hadoop流程会有一个跟全面的了解,我们抛开繁杂的学术名词,其实就是要实现我一个任务可以在多个电脑上跑的过程(分散算力),那交给我们应该如果来搞?我们是不是要对我们的虚拟机先分配地址(

    2024年02月06日
    浏览(48)
  • Hadoop平台集群之间Hive表和分区的导出和导入迁移(脚本)

    你可以使用Hive的EXPORT和IMPORT命令结合Hadoop的DistCp命令。下面是一个示例脚本: 在脚本中,你需要根据实际情况修改以下参数: source_db.source_table:源Hive表的数据库和表名。 target_hdfs_location:导出数据的HDFS位置,用于暂时存储导出数据。 source_cluster和target_cluster:分别为源H

    2024年02月15日
    浏览(37)
  • 【大数据学习篇2】Hadoop集群安装

    IP 机器名 root密码 用户名 密码 进程 192.168.20.44 master hd hd hd namenode,ResourceManager,SecondaryNameNode 192.168.20.45 slave01 hd hd hd datanode,NodeManager 192.168.20.46 slave02 hd hd hd datanode,NodeManager 密码统一设置成:hd 或者 123456 设置网卡为静态的地址 Linux常用的命令 使用vi编辑器,在/etc/profile增

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包