Hadoop相关概念

网友投稿 215 2022-11-27

Hadoop相关概念

Hadoop是什么

Hadoop是一个开源的大数据框架 Hadoop是一个分布式计算的解决方案 Hadoop = HDFS(分布式文件系统)+ MapReduce(分布式计算)

Hadoop核心

HDFS分布式文件系统:存储是大数据技术的基础 MapReduce编程模型:分布式计算是大数据应用的解决方案

Hadoop基础架构

HDFS概念   数据块   NameNode   DataNode

数据块:抽象块而非整个文件作为存储单;默认大小64MB一般设置为128M,备份X3。 NameNode:管理文件系统的命名空间,存放文件元数据;维护着文件系统的所有文件和目录,文件与数据块的映射;记录每个文件中各个块所在数据节点的信息。 DataNode:存储并检索数据块;向NameNode更新所存储块的列表。

HDFS优点

适合大文件存储,支持TB、PB级的数据存储,并有副本策略。 可以构建在廉价的机器上,并有一定的容错和恢复机制。 支持流式数据访问,一次写入多次读取最高效。

HDFS缺点

不适合大量小文件存储 不适合并发写入,不支持文件随机修改。 不支持随机读取等低延时的访问方式。

Hadoop各个功能模块的理解

1、HDFS模块

HDFS负责大数据的存储,通过将大文件分块后进行分布式存储方式,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,HDFS是个相对独立的模块,可以为YARN提供服务,也可以为HBase等其他模块提供服务。

2、YARN模块

YARN是一个通用的资源协同和任务调度框架,是为了解决Hadoop1.x中MapReduce里NameNode负载太大和其他问题而创建的一个框架。YARN是个通用框架,不止可以运行MapReduce,还可以运行Spark、Storm等其他计算框架。

3、MapReduce模块

MapReduce是一个计算框架,它给出了一种数据处理的方式,即通过Map阶段、Reduce阶段来分布式地流式处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。

延伸思考

如何通过Hadoop存储小文件? a、在客户端将小文件合并为大文件。 Hadoop会把每一个小文件传递给map()函数,而Hadoop在调用map()函数时会创建一个映射器,这样就会创建了大量的映射器,应用的运行效率并不高。如果使用和存储小文件,通常就会创很多的映射器。解决小文件问题的主要目的就是通过合并小文件为更大的文件来加快Hadoop的程序的执行,解决小文件问题可以减少map()函数的执行次数,相应地提高hadoop作业的整体性能。 b、使用Hadoop的CombineFileInputFormat实现小文件的合并。 使用Hadoop API(抽象类CombineFileInputFormat)来解决小文件的问题。抽象类CombineFileInputFormat的基本思想是通过使用一个定制的InputFormat允许将小文件合并到Hadoop的分片(split)或块(chunk)中。 当有节点故障的时候,集群是如何继续提供服务的,如何读、写? 哪些是影响MapReduce性能的因素? a、硬件(或者资源)因素,如CPU、磁盘I/O、网络带宽和内存大小。 b、底层存储系统。 c、输入数据、分拣(shuffle)数据以及输出数据的大小,这与作业的运行时间紧密相关。 d、作业算法(或者程序),如map、reduce、partition、combine和compress。有些算法很难在MapReduce中概念化,或者在MapReduce中效率可能会降低。

HDFS写流程

HDFS读流程

MapReduce

MapReduce是一种编程模型,是一种编程方法,是抽象的理论。

YARN概念(通用的资源协同和任务调度框架) ResourceManager 分配和调度资源、启动并监控ApplicationMaster、监控NodeManager ApplicationMaster 为MR类型的程序申请资源,并分配给内部任务、负责数据的切分、监控任务的执行及容错 NodeManager 管理单个节点的资源、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令

MapReduce四个阶段

Split阶段 Map阶段(需要编码) Shuffle阶段 Reduce阶段(需要编码)

MapReduce编程模型

- 输入一个大文件,通过split之后将其分为多个分片 - 每个文件分片由单独的机器去处理,这就是Map方法 - 将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:RestTemplate实现发送带headers的GET请求
下一篇:FPGA与HPS之间互联的结构
相关文章

 发表评论

暂时没有评论,来抢沙发吧~