hadoop三大核心组件分别是hdfs、mapreduce和yarn。详细介绍:1、hdfs:即分布式文件系统,用于存储hadoop集群中的大量数据。具有高容错性,可跨多个数据节点存储数据,并提供高吞吐量的数据访问;2、mapreduce:用于大规模数据集的并行处理。它将大数据任务分解为多个小任务,并在多个节点上并行处理,最后将结果汇总;3、yarn:负责集群资源的分配和管理。
hadoop的三大核心组件是hdfs(分布式文件存储)、mapreduce(分布式计算)和yarn(资源调度)。
1、hdfs:hadoop分布式文件系统
hdfs(hadoop distributed file system)是 hadoop 项目的核心子项目,主要负责集群数据的存储与读取,hdfs 是一个主/从(master/slave) 体系结构的分布式文件系统。hdfs 支持传统的层次型文件组织结构,用户或者应用程序可以创建目录,然后将文件保存在这些目录中。文件系统名字空间的层次结构和大多数现有的文件系统类似,可以通过文件路径对文件执行创建、读取、更新和删除操作。但是由于分布式存储的性质,它又和传统的文件系统有明显的区别。
hdfs优点:
- 高容错性。hdfs上传的数据自动保存多个副本,可以通过增加副本的数据来增加它的容错性。如果某一个副本丢失,hdfs 会复制其他机器上的副本,而我们不必关注它的实现。
- 适合大数据的处理。hdfs 能够处理 gb、tb 甚至 pb 级别的数据,规模达百万,数量非常大。(1pb=1024tb、1tb=1014gb)
- 流式数据访问。hdfs 以流式数据访问模式来存储超大文件,一次写入,多次读取,即文件一旦写入,则不能修改,只能增加。这样可以保持数据的一致性。
2、mapreduce:大规模数据处理
mapreduce 是 hadoop 核心计算框架,适用于大规模数据集(大于1tb)并行运算的编程模型,包括 map(映射)和 reduce(规约) 两部分。
当启动一个 mapreduce 任务时,map 端会读取 hdfs 上的数据,将数据映射成所需要的键值对类型并传到 reduce 端。reduce 端接收 map 端传过来的键值对类型的数据,根据不同键进行分组,对每一组键相同的数据进行处理,得到新的键值对并输出到 hdfs,这就是 mapreduce 的核心思想。
一个完整的 mapreduce 过程包含数据的输入与分片、map 阶段数据处理、reduce 阶段数据处理、数据输出等阶段:
- 读取输入数据。mapreduce 过程中的数据是从 hdfs 分布式文件系统中读取的。文件在上传到 hdfs 时,一般按照 128mb 分成了几个数据块,所以在运行 mapreduce 程序时,每个数据块都会生成一个 map,但是也可以通过重新设置文件分片大小调整 map 的个数,在运行 mapreduce 时会根据所设置的分片大小对文件重新分割(split),一个分片大小的数据块就会对应一个map。
- map 阶段。程序有一个或多个 map,由默认存储或分片个数决定。针对 map 阶段,数据以键值对的形式读入,键的值一般为每行首字符与文件最初始位置的偏移量,即中间所隔字符个数,值为这一行的数据记录。根据需求对键值对进行处理,映射成新的键值对,将新的键值对传到 reduce 端。
- shuffle/sort 阶段:此阶段是指从 map 输出开始,传送 map 输出到 reduce 作为输入的过程。该过程会将同一个 map 中输出的键相同的数据先进行一步整合,减少传输的数据量,并且在整合后将数据按照键排序。
- reduce 阶段:reduce 任务也可以有多个,按照 map 阶段设置的数据分区确定,一个分区数据被一个 reduce 处理。针对每一个 reduce 任务,reduce 会接收到不同 map 任务传来的数据,并且每个 map 传来的数据都是有序的。一个 reduce 任务中的每一次处理都是针对所有键相同的数据,对数据进行规约,以新的键值对输出到 hdfs。
3、yarn:资源管理器
hadoop 的 mapreduce 架构称为 yarn(yet another resource negotiator,另一种资源协调者),是效率更高的资源管理核心。
yarn 主要包含三大模块:resource manager(rm)、node manager(nm)、application master(am):
- resource manager 负责所有资源的监控、分配和管理;
- application master 负责每一个具体应用程序的调度和协调;
- node manager 负责每一个节点的维护。
以上就是hadoop三大核心组件分别是什么的详细内容,更多请关注非常游戏网其它相关文章!