b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

【上海校区】(一):Hadoop概述及MapReduce程序工作原理

电脑杂谈  发布时间:2020-01-24 13:02:45  来源:网络整理

hadoop mapreduce原理_hadoop和mapreduce_hadoop mapreduce 原理

Hadoop概述:

Hadoop提供了用于建立分布式平台软件(数据传输、数据预测、协调处理),是一个大数据存储和预测系统。

面对大数据,人们所要做的就是数据的存储与预测工作。

Hadoop提供了一个具有可靠的共享存储(HDFS)和预测系统(MapReduce)平台。HDFS实现数据的存储,MapReduce实现数据的预测和处理。HDFS和MapReduce是Hadoop的核心价值。

MapReduce提出一个编程模型,模型抽象出了内存对数据的读写问题并将其转化为对一个数据集(由键值对构成)的计算(MapReduce的灵感来自于传统的函数式编程、分布式计算和社区)。

MapReduce查询应该处理整个数据集或大约一个数据集的绝大部分,是一个批查询处理器。MapReduce比较合适以批处理方式处理必须探讨整个数据集的难题,尤其是动态预测。适合一次写入、多次读取数据(即少更新)的应用(相对应的关系型更合适持续升级的数据集,关系型适用于点查询跟更新)。另外,MapReduce适合操作非结构化或半结构化数据,因为它是在处理数据时才对数据进行解释hadoop mapreduce 原理,也就是MapReduce输入的键和值并不是数据的固有属性,而是由剖析数据的人来选的。(MapReduce非常适用于分析各类日志文件的缘由就是这些日志文件时非结构化的)

高性能计算选用的方式是将作业分散至集群的各台机器上,这些机器访问存储区域网络(ASN)所构成的共享文件系统,比较适用于计算密集型的作业,但即使节点要访问的数据量更大,许多计算节点会因网络带宽的弊端不得不闲下来等数据。MapReduce尽量在计算节点上传输数据,以推动数据的本地快速访问,数据本地化是MapReduce的核心特点。

Hadoop这个名字也泛指一组相关的项目,这些项目都使用这个基础系统进行分布式计算跟海量数据处理。如:

Avro:一种序列化系统,用于支持高效、跨语言的RPC和持久化数据存储;

hadoop mapreduce 原理_hadoop和mapreduce_hadoop mapreduce原理

MapReduce:分布式数据处理模式和执行环境,运行于小型商用机集群;

HDFS:分布式文件系统hadoop mapreduce 原理,运行于大型商用机集群;

Pig:数据流语言和运行环境,用于研究比较庞大的数据集,运行在MapReduce和HDFS集群上;

Hive:一种分布式的、按列储存的数据仓库,管理HDFS中储存的数据,提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据;

HBase:一种分布式的、按列储存的,使用HDFS作为底层传输,同时支持MapReduce的批量式计算跟点查询(随机读取);

ZooKeeper:一种分布式的、可用性高的协调服务,提供分布式锁之类的基本服务用于建立分布式应用;

Sqoop:用语在结构化数据存储和HDFS之间高效批量传输数据;

Oozie:该服务用于运行和调度Hadoop作业(如MapReduce、Pig、Hive、及Sqoop作业)。

MapReduce程序工作原理:

hadoop和mapreduce_hadoop mapreduce 原理_hadoop mapreduce原理

MapReduce是一种可用于数据处理的编程模型。MapReduce程序本质上是并行运行的,其优势在于处理数据集。

使用Hadoop分析数据:为充分利用Hadoop提供的并行处理优势,需将查询表示成MapReduce作业。MapReduce任务过程分为两个处理阶段:map阶段跟reduce阶段。各阶段都以键值对<key,value>作为输入跟输出,其类别由程序员选择(类型可变)。程序员还必须写两个函数:map函数跟reduce函数进行对两个阶段的抽象。

map()函数:用户自定义的map()函数接受一个<key,value>对集,经过map()函数的推导得出另一个中间<key,value>对集。为了避免map()函数和reduce()函数之间的数据存储,MapReduce对map()函数的返回值进行一定的处理,包括顺序、分组等处理后释放给reduce()函数。

reduce()函数:用户自定义的reduce()函数接受一个中间key值跟相关value值的集合。reduce()函数合并某些value值,形成一个较小的value值的集合。

如运用MapReduce技术从NCDC数据中找出每年的最高气温。

map()函数以键/值对方式输入数据。略。

输出结果:

(1950,0)

(1950,22)

hadoop mapreduce 原理_hadoop mapreduce原理_hadoop和mapreduce

(1950,-11)

(1949,111)

(1949,78)

为降低map()函数与reduce()函数间数据传递及便于reduce()函数处理,MapReduce框架对map()函数的输出进行一定的处理(排序、分组等)之后得出一中间结果,再将前面结果发送给reduce()函数。因此reduce()函数的输入为:

(1949,[111,78])

(1950,[0,22,-11])

最终reduce()函数递归整个列表并输出每年最高气温。

(1949,111)

(1950,22)

hadoop mapreduce原理_hadoop和mapreduce_hadoop mapreduce 原理

MapReduce逻辑数据流如下图图示。

Java MapReduce

MapReduce程序代码实现需三样东西:一个map函数、一个reduce函数跟一些用来运行作业的代码。map函数由Mapper类来表示,后者声明了一个map()虚方法。reduce函数由Reduce类来表示,后者声明了一个reduce()虚方法。Mapper类是一个泛型类别,有四个参数,分别选定map函数的键入键、输入值、输出建、和输出值的类别。Reduce类也是四个形式参数类型用于指定输入跟输出类型。需要切记的是,reduce的输入类别需要匹配map的输出类型。

在Hadoop集群上运行作业时,要把代码打包成一个JAR文件(Hadoop在集群上公布这个文件)。不必指定JAR文件的名称,在Job对象的setJarByClass()方法中释放一个类即可,Hadoop利用这个类来查找包括它的JAR文件,进而找到相关的JAR文件。

针对分布式文件系统(HDFS),允许Hadoop将MapReduce作业转移至传输有个别数据的各台机器上。MapReduce作业(job)是客户端需要执行的一个工作单元:包括输入数据、MapReduce程序跟配置信息。Hadoop将作业分成若干个小任务(task)来执行,其中包含两类任务:map任务和reduce任务。

两类节点控制作业的执行过程:一个jobtracker及一系列tasktracker。jobtracker通过调度tasktracker上运行的任务来协调所有运行在平台上的作业。tasktracker在运行任务的同时将运行进度报告发送给jobtracker,jobtracker由此记录每项作业任务的整体进度情况。如果其中一个任务失败,jobtracker可以在另一个tasktracker节点上再次调度该任务。

Hadoop将MapReduce的输入数据划分成等长的小数据块,成为输入分片。Hadoop为每个分片构建一个map任务,并由该任务来运行客户自定义的map函数能够处理分片中的每条记录。对于大多数作业来说,一个合理的分片大小趋于于HDFS的一个块大小,默认64MB。

Hadoop在存储有输入数据(HDFS中的数据)的结点上运行map任务,这就是所谓的“数据本地优化”。也就是说map任务只在存有输入数据的结点数运行。HDFS数据块备份在三个节点上。偶尔对于一个map任务的输入来说,三个备份节点可能正在运行其它map任务,此时作业调度需要在三个备份中的某个数据寻找同个机架空闲的机器来运行该map任务,仅在特别偶然的状况下会使用其它机架中的机器运行该map任务,这将造成机架与机架之间的网络传输。

Map任务将其输出写入本地磁盘,而非HDFS。因为map的输出是前面结果:该中间结果由reduce任务处理后才形成最后输出结果,一旦作业完成,map的输出结果就可以删除。若该结点上运行的map任务在将map中间结果传送给reduce之前失败,Hadoop将在另一个节点上再次运行这个map任务以继续推进map中间结果。中间结果必须借助网络存储发送到运行reduce任务的结点,数据在reduce端合并,然后由用户定义的reduce函数处理。Reduce的输出一般存储在HDFS中以推动可靠传输。对于每个reduce输出的HDFS块,第一个复本存储在本地节点上,其他复本存储在其它机架节点中。

集群上的只用带宽限制了MapReduce作业次数,因此尽量减少map和reduce任务之间的数据传输。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-138036-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 汉高祖刘邦
        汉高祖刘邦

        如果说以前让你们来大陆投资是为了发展经济

      • 渡边庆
        渡边庆

      • 黄晓峰
        黄晓峰

        俺们那的人大部分谈生意都很实诚

      每日福利
      热点图片
      拼命载入中...