Hadoop分布式文件系统(三)

目录

一、Hadoop

1、MapReduce

1.1、理解MapReduce思想

1.2、分布式计算概念

1.3、MapReduce介绍

1.4、MapReduce特点

1.5、MapReduce局限性

1.6、MapReduce实例进程

1.7、MapReduce阶段组成

1.8、MapReduce数据类型

1.9、MapReduce官方示例

2、YARN


一、Hadoop

1、MapReduce

1.1、理解MapReduce思想

    MapReduce的思想核心是"先分再合,分而治之"。

    所谓"分而治之"就是把一个复杂的问题,按照一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的结果,然后把各部分的结果组成整个问题的最终结果

    这种思想来源于日常生活与工作时的经验。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想,而不是自己原创。

    Map表示第一阶段,负责“拆分”:即把复杂的任务分解为若干个“简单的子任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。

    Reduce表示第二阶段,负责“合并”:即对map阶段的结果进行全局汇总。

    这两个阶段合起来正是MapReduce思想的体现。

    MapReduce处理的数据类型是<key,value>键值对

实例:全国人口普查、停车场一共停多少辆车。

1.2、分布式计算概念

    分布式计算是一种计算方法,和集中式计算是相对的。

    随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。

    分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。

1.3、MapReduce介绍

    Hadoop MapReduce是一个分布式计算框架,用于轻松编写分布式应用程序,这些应用程序以可靠,容错的方式并行处理大型硬件集群(数千个节点)上的大量数据(多TB数据集)。

    MapReduce是一种面向海量数据处理的一种指导思想,也是一种用于对大规模数据进行分布式计算的编程模型。

1.4、MapReduce特点

易于编程

    MapReduce框架提供了用于二次开发的接口;简单地实现一些接口,就可以完成一个分布式程序。任务计算交给计算框架去处理,将分布式程序部署到hadoop集群上运行,集群节点可以扩展到成百上千个等。

良好的扩展性

    当计算机资源不能得到满足的时候,可以通过增加机器来扩展它的计算能力。基于MapReduce的分布式计算的特点可以随节点数目增长保持近似于线性的增长,这个特点是MapReduce处理海量数据的关键,通过将计算节点增至几百或者几千可以很容易地处理数百TB甚至PB级别的离线数据。

高容错性

    Hadoop集群是分布式搭建和部署的,任何单一机器节点宕机了,它可以把上面的计算任务转移到另一个节点上运行,不影响整个作业任务的完成,过程完全是由Hadoop内部完成的。

适合海量数据的离线处理

    可以处理GB、TB和PB级别的数据量

1.5、MapReduce局限性

    MapReduce虽然有很多的优势,也有相对的局限性,局限性不代表不能做,而是在有些场景下实现的效果比较差,并不适合用MapReduce来处理,主要表现在以下方面:

    1、实时计算性能差:MapReduce主要应用于离线作业,无法做到秒级或者亚秒级的数据响应。

    2、不能进行流式计算:流式计算特点是数据是源源不断的计算,并且数据是动态的;而MapReduce作为一个离线计算框架,主要是针对静态数据集的,数据是不能动态变化的。

1.6、MapReduce实例进程

    一个完整的MapReduce程序在分布式运行时有三类

    1、MRAppMaster:负责整个MR程序的过程调度及状态协调

    2、MapTask:负责map阶段的整个数据处理流程

    3、ReduceTask:负责reduce阶段的整个数据处理流程

1.7、MapReduce阶段组成

    一个MapReduce编程模型中只能包含一个Map阶段和一个Reduce阶段,或者只有Map阶段。

    不能有诸如多个map阶段、多个reduce阶段的情景出现。

    如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序串行运行。

1.8、MapReduce数据类型

    注意:整个MapReduce程序中,数据都是以KV键值对的形式流转的。

    在实际编程解决各种业务问题中,需要考虑每个阶段的输入输出KV分别是什么。

    MapReduce内置了很多默认属性,比如排序、分组等,都和数据的K有关,所以说KV的类型数据确定及其重要的。

1.9、MapReduce官方示例

    一个最终完整版本的MR程序需要用户编写的代码和Hadoop自己实现的代码整合在一起才可以。

    其中用户负责map、reduce两个阶段的业务问题,Hadoop负责底层所有的技术问题。

    由于MapReduce计算引擎天生的弊端(慢),当下企业中直接使用率已经日薄西山了,所以在企业中工作很少涉及到MapReduce直接编程,但是某些软件的背后还依赖MapReduce引擎。

    可以通过官方提供的示例来感受MapReduce及其内部执行流程,因为后续的新的计算引擎比如Spark,当中就有MapReduce深深的影子存在。

示例说明--圆周率PI评估

    示例程序路径:/export/server/hadoop-3.3.6/share/hadoop/mapreduce/

    示例程序:hadoop-mapreduce-examples-3.3.6.jar

    MapReduce程序提交命令:[hadoop jar | yarn jar]  hadoop-mapreduce-examples-3.3.6.jar args...

    提交到哪里去?提交到YARN集群上分布式执行。

评估圆周率PI的值

    Monte Carlo方法

    假设正方形边长为1,圆半径也为1,那么1/4圆的面积为:\frac{1}{4}\pi r^{2}=\frac{\pi }{4}

    在正方形内随机撒点,分布于1/4圆内的数量假设为a,分布于圆外的数量为b,N则是所产生的总数:N=a+b

    那么数量a与N的比值应与1/4圆面积及正方形面积成正比,于是:\frac{\pi }{4}:1=a:N \Rightarrow \Rightarrow \pi =\frac{4a}{N}

    运行MapReduce程序评估一下圆周率的值,执行中可以去YARN页面上观察程序的执行的情况。

    第一个参数:pi表示MapReduce程序执行圆周率计算任务

    第二个参数:用于指定map阶段运行的任务task次数,并发度,这里是2。

    第三个参数:用于指定每个map任务取样的个数,这里是4。

hadoop jar hadoop-mapreduce-examples-3.3.6.jar pi 2 4

示例:执行Hadoop官方自带的MapReduce案例,评估圆周率π的值

[root@node1 ~]# cd /export/server/hadoop-3.3.6/share/hadoop/mapreduce/
[root@node1 mapreduce]# ls
hadoop-mapreduce-client-app-3.3.6.jar         hadoop-mapreduce-client-jobclient-3.3.6.jar        hadoop-mapreduce-examples-3.3.6.jar
hadoop-mapreduce-client-common-3.3.6.jar      hadoop-mapreduce-client-jobclient-3.3.6-tests.jar  jdiff
hadoop-mapreduce-client-core-3.3.6.jar        hadoop-mapreduce-client-nativetask-3.3.6.jar       lib-examples
hadoop-mapreduce-client-hs-3.3.6.jar          hadoop-mapreduce-client-shuffle-3.3.6.jar          sources
hadoop-mapreduce-client-hs-plugins-3.3.6.jar  hadoop-mapreduce-client-uploader-3.3.6.jar
[root@node1 mapreduce]# hadoop jar hadoop-mapreduce-examples-3.3.6.jar pi 2 4
Number of Maps  = 2
Samples per Map = 4
Wrote input for Map #0
Wrote input for Map #1
Starting Job
2024-01-03 00:05:35,990 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at node1/192.168.18.81:8032
2024-01-03 00:05:36,427 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_17042071157                                                                                        02_0001
2024-01-03 00:05:36,633 INFO input.FileInputFormat: Total input files to process : 2
2024-01-03 00:05:36,739 INFO mapreduce.JobSubmitter: number of splits:2
2024-01-03 00:05:36,889 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1704207115702_0001
2024-01-03 00:05:36,889 INFO mapreduce.JobSubmitter: Executing with tokens: []
2024-01-03 00:05:37,048 INFO conf.Configuration: resource-types.xml not found
2024-01-03 00:05:37,048 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
2024-01-03 00:05:37,469 INFO impl.YarnClientImpl: Submitted application application_1704207115702_0001
2024-01-03 00:05:37,517 INFO mapreduce.Job: The url to track the job: http://node1:8088/proxy/application_1704207115702_0001/
2024-01-03 00:05:37,518 INFO mapreduce.Job: Running job: job_1704207115702_0001
2024-01-03 00:05:44,645 INFO mapreduce.Job: Job job_1704207115702_0001 running in uber mode : false
2024-01-03 00:05:44,647 INFO mapreduce.Job:  map 0% reduce 0%
2024-01-03 00:05:49,790 INFO mapreduce.Job:  map 100% reduce 0%
2024-01-03 00:05:56,882 INFO mapreduce.Job:  map 100% reduce 100%
2024-01-03 00:05:57,937 INFO mapreduce.Job: Job job_1704207115702_0001 completed successfully
2024-01-03 00:05:58,074 INFO mapreduce.Job: Counters: 54
        File System Counters
                FILE: Number of bytes read=50
                FILE: Number of bytes written=831342
                FILE: Number of read operations=0
                FILE: Number of large read operations=0
                FILE: Number of write operations=0
                HDFS: Number of bytes read=520
                HDFS: Number of bytes written=215
                HDFS: Number of read operations=13
                HDFS: Number of large read operations=0
                HDFS: Number of write operations=3
                HDFS: Number of bytes read erasure-coded=0
        Job Counters
                Launched map tasks=2
                Launched reduce tasks=1
                Data-local map tasks=2
                Total time spent by all maps in occupied slots (ms)=5594
                Total time spent by all reduces in occupied slots (ms)=3894
                Total time spent by all map tasks (ms)=5594
                Total time spent by all reduce tasks (ms)=3894
                Total vcore-milliseconds taken by all map tasks=5594
                Total vcore-milliseconds taken by all reduce tasks=3894
                Total megabyte-milliseconds taken by all map tasks=5728256
                Total megabyte-milliseconds taken by all reduce tasks=3987456
        Map-Reduce Framework
                Map input records=2
                Map output records=4
                Map output bytes=36
                Map output materialized bytes=56
                Input split bytes=284
                Combine input records=0
                Combine output records=0
                Reduce input groups=2
                Reduce shuffle bytes=56
                Reduce input records=4
                Reduce output records=0
                Spilled Records=8
                Shuffled Maps =2
                Failed Shuffles=0
                Merged Map outputs=2
                GC time elapsed (ms)=226
                CPU time spent (ms)=1710
                Physical memory (bytes) snapshot=887963648
                Virtual memory (bytes) snapshot=8386064384
                Total committed heap usage (bytes)=736624640
                Peak Map Physical memory (bytes)=314757120
                Peak Map Virtual memory (bytes)=2793766912
                Peak Reduce Physical memory (bytes)=260431872
                Peak Reduce Virtual memory (bytes)=2799820800
        Shuffle Errors
                BAD_ID=0
                CONNECTION=0
                IO_ERROR=0
                WRONG_LENGTH=0
                WRONG_MAP=0
                WRONG_REDUCE=0
        File Input Format Counters
                Bytes Read=236
        File Output Format Counters
                Bytes Written=97
Job Finished in 22.166 seconds
Estimated value of Pi is 3.50000000000000000000
[root@node1 mapreduce]#

2、YARN

Hadoop分布式文件系统(二)

再小的努力,乘以365都很明显!
一个程序员最重要的能力是:写出高质量的代码!!
有道无术,术尚可求也,有术无道,止于术。
无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 每日一题 2024年01月11日 统计出现过一次的公共字符串

题目 2085. 统计出现过一次的公共字符串 给你两个字符串数组 words1 和 words2 &#xff0c;请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1&#xff1a; 输入&#xff1a;words1 ["leetcode","is","amazing","a…

yolov8 瑞芯微 RKNN 的 C++部署,部署工程难度小、模型推理速度快

之前写过两次yolov8目标检测部署&#xff0c;后续继续思考&#xff0c;针对部署还有优化空间&#xff0c;本示例的部署方式优化了部署难度&#xff0c;加快了模型推理速度&#xff08;略微增加了后处理的时耗&#xff09;。 特别说明&#xff1a;如有侵权告知删除&#xff0c;…

支付宝异步验签踩的坑

最近公司要做支付宝小程序 我作为服务端就要给小程序配置下单啊&#xff0c;异步回调同步支付状态等功能 就不可避免的使用到了支付宝异步验签 首先背景是我是PHP语言&#xff0c;然后验签方式是RSA2 一开始写原生验签方法&#xff0c;验签失败&#xff0c;后面又搞sdk 验签…

ABAP message的6种类型

ABAP message的6种类型 代码示例&#xff0c; IF lt_bseg[] IS INITIAL. MESSAGE 测试的信息&#xff01; TYPE I. ENDIF.

[BJDCTF2020]ZJCTF,不过如此

题目源码&#xff1a; <?phperror_reporting(0); $text $_GET["text"]; $file $_GET["file"]; if(isset($text)&&(file_get_contents($text,r)"I have a dream")){echo "<br><h1>".file_get_contents($tex…

完全卸载grafana

先停掉grafana sudo systemctl stop grafana-server 查看要卸载的包的名字 yum list installed yum remove grafana-enterprise.x86_64 成功 删除grafana的数据目录 sudo rm -rf /etc/grafana/sudo rm -rf /usr/share/grafana/sudo rm -rf /var/lib/grafana/

【AT 指令开发】软件框架与接口

目录 1 软件逻辑2.代码2.1 at_command.h2.2 at_command.c本文主要用于记录纯MCU无OS下,AT 指令开发软件框架 1 软件逻辑 2.代码 2.1 at_command.h #ifndef AT_COMMAND_H #define AT_COMMAND_Hvoid AT_CMD_Process(uint8_t *uartBuffer, uint8_t dataLen);/*描述AT指令返回值…

STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结

至此&#xff0c;飞行射击游戏已经基本实现该有的功能&#xff0c;已经比较接近早期的商业游戏了。 如果采用脚本&#xff0c;可以完成关卡游戏&#xff0c;如果不用&#xff0c;也可以做成无限挑战游戏。 我们汇总一下制作的过程&#xff1a; 1、建模UML 2、主循环处理过程…

基于JavaWeb+BS架构+SpringBoot+Vue电影订票系统系统的设计和实现

基于JavaWebBS架构SpringBootVue电影订票系统系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 1 绪 论 3 1.1研究背景和意义 3 1.2拟解决的问题及特性 3 1.3论文的结构 …

数据库期末复习重点总结

数据库期末复习重点总结 本文为总结&#xff0c;如有不对的地方请指针 第2章 关系模型的介绍 名称符号选择σ投影∏笛卡儿积连接并∪集差-交∩赋值<-更名ρ 除操作 设R和S除运算的结果为T&#xff0c;则T包含所有在R中但不在S中的属性和值&#xff0c;且T的元组与S的元…

基于嵌入式的智能台灯系统

基于嵌入式的智能台灯系统 功能说明 通过微信小程序控制台灯的亮灭及亮度。采集温湿度传到微信小程序上&#xff0c;台灯可以显示实时北京时间。 功能展示 01智能台灯演示 Mqtt服务器 http://www.yoyolife.fun/iot&#xff1a;Mqtt服务器&#xff0c;我是在这里注册的&#x…

Java医院综合绩效考核系统源代码

医院绩效考核管理系统是采用B/S架构模式设计、使用JAVA语言开发、后台使用MySql数据库进行管理的一整套计算机应用软件。系统和his系统进行对接&#xff0c;按照设定周期&#xff0c;从his系统获取医院科室和医生、护士、其他人员工作量&#xff0c;对没有录入信息化系统的工作…

配网故障定位技术的发展与应用:保障电力供应安全稳定的重要支撑

在现代社会&#xff0c;电力供应安全稳定对于国家经济发展和民生福祉至关重要。然而&#xff0c;随着电网规模的不断扩大&#xff0c;配网故障问题也日益突出。为了确保电力供应的连续性和可靠性&#xff0c;人们不断探索和研发各种故障定位技术。本文将介绍一种基于行波测距技…

LLM大模型显存计算

一、目录 模型参数单位内存计算案例显卡算力推理显存计算训练显存计算huggface 官网计算 模型推理/训练 需要的显存大模型输入长度与显存的关系大模型推理 多线程与显存的关系 参考&#xff1a;https://blog.csdn.net/Johntill/article/details/132629075 二、实现 模型参数…

【详解】稀疏矩阵的十字链表✿◡‿◡

目录 引言&#xff1a; 稀疏矩阵的十字链表表示 第一步&#xff1a;创结点存数据 第二步&#xff1a;将头结点同数据结点串起来 第三步&#xff1a;创建一个总头结点构成循环链表 总代码如下&#xff1a; 运行结果如下&#xff1a; 结语&#xff1a; 引言&#xff1a; …

超简单的简历模板精选5篇

HR浏览一份简历也就25秒左右&#xff0c;如果你连「好简历」都没有&#xff0c;怎么能找到好工作呢&#xff1f; 如果你不懂得如何在简历上展示自己&#xff0c;或者觉得怎么改简历都不出彩&#xff0c;那请你一定仔细读完。 个人求职简历第 1 篇 男 22 本科 AI简历 市场营…

Open CV 图像处理基础:(五)Java 使用 Open CV 的绘图函数

Java 使用 Open CV 的绘图函数 使用 Open CV 在 Java 中对图片使用绘图函数&#xff0c;分别绘制矩形、斜线、圆形、椭圆形以及添加文本 Java 使用 Open CV 的绘图函数 Java 使用 Open CV 的绘图函数函数绘制矩形绘制线绘制圆形绘制椭圆添加文本 代码示例Open CV 专栏导航 函…

redis stream restTemplate消息监听队列框架搭建

整体思路 1. pom增加redis依赖&#xff1b; 2. 消息监听器&#xff0c;实现StreamListener接口&#xff0c;处理消息到达逻辑&#xff1b; 3. 将消息订阅bean及监听器注册到配置中&#xff1b; 1. pom <?xml version"1.0" encoding"UTF-8"?> <…

vue的mvvm模式

1.mvvm优点&#xff1a; 低耦合&#xff1a;视图&#xff08;View&#xff09;可以独立于Model变化和修改&#xff0c;一个ViewModel可以绑定到不同的View上&#xff0c;当View变化的时候Model可以不变&#xff0c;当Model变化的时候&#xff0c;View也可以不变。 可复用&…

PostgreSQL 配置文件、数据储存目录

文章目录 查询配置文件所在位置查询数据储存目录PostgreSQL的数据目录 查询配置文件所在位置 show config_file; -- 查询配置文件所在位置查询数据储存目录 show data_directory; -- 查询数据储存目录PostgreSQL的数据目录 在PostgreSQL的数据目录&#xff08;C:\Program…