Hadoop运行模式(一)、本地运行模式(官方WordCount)、完全分布式运行模式(开发重点)、scp安全拷贝、rsync 远程同步工具、xsync集群分发脚本、同步环境变量配置(root所有着)

简介: Hadoop运行模式(一)、本地运行模式(官方WordCount)、完全分布式运行模式(开发重点)、scp安全拷贝、rsync 远程同步工具、xsync集群分发脚本、同步环境变量配置(root所有着)

3.Hadoop运行模式

Hadoop官方网站:http://hadoop.apache.org/
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

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

在这里插入图片描述

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

3.1.1创建在hadoop-3.1.3文件下面创建一个testinput文件夹

  • [summer@hadoop102 hadoop-3.1.3]$ mkdir testinput

在这里插入图片描述

3.1.2在testinput文件下创建一个word.txt文件

在这里插入图片描述

3.1.3编辑word.txt文件

wo wo
zui zui
shuai shuai

在这里插入图片描述

3.1.4回到Hadoop目录/opt/module/hadoop-3.1.3

在这里插入图片描述

3.1.5执行程序

  • [summer@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount testinput/ testoutput

输入输出路径必须有,输出路径得需要不存在

3.1.6查看结果

在这里插入图片描述

  • [summer@hadoop102 testoutput]$ cat part-r-00000

shuai 2
wo 2
zui 2

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

分析:

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

3.2.1虚拟机准备

3.2.2编写集群分发脚本xsync

3.2.2.1scp(secure copy)安全拷贝

3.2.2.1.1scp定义

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

3.2.2.1.2基本语法
scp    -r        $pdir/$fname             $user@$host:$pdir/$fname
命令   递归       要拷贝的文件路径/名称       目的地用户@主机:目的地路径/名称
3.2.2.1.3实操
3.2.2.1.3.1前提:在hadoop102、hadoop103、hadoop104都已经创建好的/opt/module、/opt/software两个目录,并且已经把这两个目录修改为summer:summer

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果有哪一台虚拟机没有将目录修改为summer:summer,或者没有创建好/opt/module、/opt/software两个目录看我之前的博客
1.1.6
在这里插入图片描述

3.2.2.1.3.2在hadoop102上,将hadoop102中/opt/module/jdk1.8.0_212目录拷贝到hadoop103上
  • [summer@hadoop102 module]$ scp -r jdk1.8.0_212/ summer@hadoop103:/opt/module/

在这里插入图片描述
在这里插入图片描述
然后就等待拷贝成功

在这里插入图片描述

看到hadoop103已经有了jdk了,说明从hadoop102向hadoop103拷贝成功了

3.2.2.1.3.3在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上
  • [summer@hadoop103 module]$ scp -r summer@hadoop102:/opt/module/hadoop-3.1.3 ./

在这里插入图片描述

在这里插入图片描述
然后就等待拷贝成功

在这里插入图片描述

看到hadoop103已经有了hadoop了,说明hadoop103从hadoop102中的hadoop拿过来了

3.2.2.1.3.4在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上
  • [summer@hadoop103 module]$ scp -r summer@hadoop102:/opt/module/* summer@hadoop104:/opt/module/

在这里插入图片描述
在这里插入图片描述
然后就等待拷贝成功

在这里插入图片描述

看到hadoop104已经有了jdk和hadoop了,说明在hadoop102中从hadoop102中的jdk和hadoop拷贝到了hadoop104中了

3.2.2.2rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

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

选项参数说明

选项 功能
-a 归档拷贝
-v 显示复制过程
3.2.2.2.2实操
3.2.2.2.2.1删除hadoop103中/opt/module/hadoop-3.1.3/testinput和testoutput
  • [summer@hadoop103 hadoop-3.1.3]$ rm -rf testinput/
  • [summer@hadoop103 hadoop-3.1.3]$ rm -rf testoutput/

在这里插入图片描述

3.2.2.2.2.2同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103
  • [summer@hadoop102 module]$ rsync -av hadoop-3.1.3/ summer@hadoop103:/opt/module/hadoop-3.1.3/

在这里插入图片描述

在这里插入图片描述
然后就等待成功,这个比scp要快

在这里插入图片描述

3.2.2.3xsync集群分发脚本

3.2.2.3.1需求:循环复制文件到所有节点的相同目录下
3.2.2.3.2需求分析
3.2.2.3.2.1xsync命令原始拷贝

xsync -av /opt/module summer@hadoop103:/opt/

3.2.2.3.2.2期望脚本

xsync要同步的文件名称

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

[summer@hadoop102 ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/home/summer/.local/bin: /home/summer/bin

在这里插入图片描述

3.2.2.3.3脚本实现
3.2.2.3.3.1在/home/summer/bin目录下创建xsync文件

[summer@hadoop102 ~]$ mkdir bin
[summer@hadoop102 ~]$ cd bin
[summer@hadoop102 bin]$ vim xsync

在这里插入图片描述

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
3.2.2.3.3.2修改脚本xsync具有执行权限
  • [summer@hadoop102 bin]$ chmod 777 xsync

在这里插入图片描述

3.2.2.3.3.3测试脚本
  • [summer@hadoop102 bin]$ xsync /home/summer/bin

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2.2.3.3.4将脚本复制到/bin中,以便全局调用
  • [summer@hadoop102 bin]$ sudo cp xsync /bin/
3.2.2.3.3.5同步环境变量配置(root所有者)
  • [summer@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env_hadoop-3.1.3.sh
  • [summer@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env_jdk_1.8.0_212.sh

注意:如果用了sudo,那么xsync一定要给它的路径补全
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

让环境变量生效

  • [summer@hadoop103 ~]$ source /etc/profile
  • [summer@hadoop104 ~]$ source /etc/profile
相关文章
|
7月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
505 2
|
11月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
386 5
|
12月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
10月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
934 35
|
10月前
|
分布式计算 Hadoop Java
CentOS中构建高可用Hadoop 3集群
这个过程像是在一个未知的森林中探索。但当你抵达终点,看到那个熟悉的Hadoop管理界面时,所有的艰辛都会化为乌有。仔细观察,尽全力,这就是构建高可用Hadoop 3集群的挑战之旅。
371 21
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
数据管理 API 调度
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
HarmonyOS Next 是华为新一代操作系统,专注于分布式技术的深度应用与生态融合。本文通过技术特点、应用场景及实战案例,全面解析其核心技术架构与开发流程。重点介绍分布式软总线2.0、数据管理、任务调度等升级特性,并提供基于 ArkTS 的原生开发支持。通过开发跨设备协同音乐播放应用,展示分布式能力的实际应用,涵盖项目配置、主界面设计、分布式服务实现及部署调试步骤。此外,深入分析分布式数据同步原理、任务调度优化及常见问题解决方案,帮助开发者掌握 HarmonyOS Next 的核心技术和实战技巧。
1621 76
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
|
10月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
864 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
|
12月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
1087 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论

相关实验场景

更多