MapReduce 架构解释,你需要知道的一切
已发表: 2020-02-27随着技术的进步,每个企业都希望存储和处理他们的在线数据。 这一需求为企业从线上和线下的活动中收集大数据带来了新的需求。 收集到的数据需要有效地存储和处理。
Hadoop 是处理大数据的最流行的框架之一,而 Hadoop 最好的支持块之一是 MapReduce。 如果您正在寻找数据科学领域的数据分析师职业,那么您必须了解这种新兴且流行的编程语言。
目录
MapReduce 在数据分析中的重要性
MapReduce 处理广泛的规模数据,而 Hadoop 完成以多种编程方言编写的连续 MapReduce 程序,包括 C++、Python、Ruby on Rails、Java 等。 MapReduce 的本质是并行的,这使得它在编程大量数据时非常有用,这些数据可以以集群的形式被多台机器使用。
什么是 MapReduce 编程?
MapReduce 是一个分布式计算的程序模块。 它在 Java 上分两个阶段工作,即
- 地图阶段
- 减少阶段
为了理解 MapReduce,每个编码员和程序员都必须了解这两个阶段及其功能。
1. 地图阶段
在 Map 阶段,数据的信息将分为两个主要部分,即 Value 和 Key。 值仅在发牌阶段记录,而密钥在处理阶段写入。 每当客户端屈服于 Hadoop 框架的数据参与时,作业跟踪器就会分配作业,并且数据的信息被分成许多部分。

然后根据信息的性质对信息进行划分。 记录阅读器以键值对的形式传输分割的信息,这通常称为(KV)对。 KV 是 Map Phase 的原始输入数据形式,它再次处理作业跟踪器内部的数据。 对于不同的应用程序,表格上的信息会有所不同。 因此,您需要优化输入数据以进行相应的加密。
当你取文本格式的信息时,你会找到key,也就是字节偏移量。 此映射阶段还使用组合器和分区模块对程序进行编码,以便执行不寻常的数据操作。 您会发现数据本地化只会发生在数据的映射器单元中。
- Map阶段的Combiner模块
在 Map 阶段,combiner 模块也称为 mini reducer。 当映射器处理大量数据时,需要组合器来征服高带宽。 为了解决top bandwidth问题,需要在map阶段使用combiner逻辑来获得优秀的输出结果。
- Map阶段的分区模块
就像在组合器模块中一样,分区段为 MapReduce 编程语言提供了一个至关重要的方面,最终影响了 Hadoop 框架。 分区段降低了还原过程中产生的压力,从而提供了出色的输出。 您甚至可以根据不同的情况,根据您的数据自定义分区。
您甚至可以在此过程中使用默认分区。 此外,还有静态和动态分区,可帮助计算机操作员使用 reduce 和 map 阶段方法将数据划分为多个图形。 您可以根据业务需求设计和自定义这些分区。 这个分区模块对于在 MapReduce 架构的上述两个进程之间传输数据将是有价值的。

2.减少阶段
在 map 阶段处理之后,组织和混杂的数据将成为 Reduce 阶段的输入。 在这个阶段,所有排序后的数据将被合并,在 HDFS 框架中会考虑实际的 Key-Value 对。 记录作者记录了从 Reducer 阶段到 HDFS 框架的统计数据。 尽管此阶段对于搜索和映射是可选的,但它在提高性能方面起着至关重要的作用。
阅读:用于大数据的 10 大 Hadoop 工具
此阶段启动 Map 阶段提供的数据的实际过程。 Map 阶段提供 reducer 结果,例如 part-r-0001。 您还需要为用户想要跟踪的每个任务提供一组数字。 您还可以设置许多优先级,以便放置特定情况的名称。
在这个阶段,理论执行对于运行数据至关重要。 如果多个 reducer 正在处理相同的数据并且第一个 reducer 处理速度很慢,那么任务跟踪器可以将处理分配给下一个可用的 reducer 以加速该过程。 这种分配给可用reducer 的工作称为FIFO,即先进先出。
了解 MapReduce 架构的过程
以下是在 Hadoop 框架中使用 MapReduce 架构时应牢记的要点。
Map阶段作业创建:在MapReduce架构中,创建第一个Map阶段作业来划分数据并执行map模块来记录数据。
数据划分:组合器和划分模块帮助数据处理许多分离。 当等于处理分区所需的时间时,处理整个数据输入所需的时间会更高。 较小的分隔以并行方式提供更好的数据处理和平衡。
另请阅读: Hadoop 的特性和应用
精确分割:尺寸太小的分离在 Map 阶段并不理想,因为它们增加了处理分割和 Map 任务创建者来控制执行整个任务的时间的负担。
考虑分割的平均大小:理想情况下,分割大小应为 64 MB,您应将其设置为默认值以创建统一大小的分割。 分割后的大小应该与 HDFS 块相当。
实现 HDFS 模块:Map 阶段输出在单个数据单元上而不是在 HDFS 模块上将写入生成到本地磁盘。 为了避免重复,这在 HDFS 中很常见,您需要选择 HDFS 以外的本地驱动器。
防止重复:Map 阶段是处理数据以馈送到 Reduce 阶段并提供结果的核心部分。 作业完成后,可以删除地图输出,防止数据复制。
提供给 reduce 阶段作业的结果:Map 阶段的结果连续提供给 Reduce 阶段。 在订单中,生产被组合并处理到用户定义的reduce函数。

本地存储:除 Map 方法外,Reduce 部分的数据保存在 HDFS 中,这也是保存在本地数据单元中的第一个副本。
结论
MapReduce 框架简化了处理 Hadoop 结构中可用的海量数据的复杂过程。 与 Hadoop 1.0 相比,Hadoop 2.0 中的 MapReduce 编程语言发生了许多重大变化。
有许多课程可用于学习 MapReduce 编程语言。 您可以利用 upGrad 的大数据工程和大数据分析课程等研究生课程来追求富有成效的编程职业。 与我们的专家联系以了解更多信息并更好地了解我们的计划。
如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。
从世界顶级大学在线学习软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。