《R与Hadoop大数据分析实战》一2.1 MapReduce基础概念

简介:

本节书摘来自华章出版社《R与Hadoop大数据分析实战》一书中的第2章,第2.1节,作者 (印)Vignesh Prajapati,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.1 MapReduce基础概念

如果没有使用过集群或信息传递接口(Message Passing Interface,MPI),那么理解MapReduce基础概念将不会是一件容易的事。更多的实际应用是数据不存放在一个硬盘中而是存放于分布式文件系统中(Distributed File System,DFS),或存放于由Hadoop技术实现的分布式软件中。
MapReduce同时也是一个编程模型,它以一种分布式方法进行工作。其中包括信息传递接口(MPI)和同步并行计算模型(Bulk Synchronous Parallel,BSP)等概念。为了使R语言或其他机器学习工具上运行一个大数据分析程序,我们需要一台高配置的机器。但是这也不是一个很好的解决方案,所以分布式处理的方式就成了处理大数据问题的绝佳途径。这种分布式计算技术可以使用MapReduce编程模式来实现。
MapReduce是解决大数据问题的一个答案,理论上可以以并行方式处理数据,这意味着它具有极强的运算能力。我们既可以通过增大计算机集群的方式也可以通过提高每台计算机硬件配置的方式来提高运算能力。使用计算机集群是处理大数据的理想方式。
在了解并行运算MapReduce前,先讨论一下Google对MapReduce的探索以及由Jeffrey Dean和Sanjay Ghemawat 于2004年编写的白皮书。他们介绍的MapReduce简单而言就是在一个集群上运行数据处理软件。这种数据处理平台可以使程序人员更容易地执行各种操作。系统负责数据输入,并在计算机网络中对其作分布式处理以及并行运算,最后把输出数据合并在一个单文件中,便于后续再次分割处理。当使用这种方式来处理一个大数据集时,无论在成本还是在运行时间上都是很有益的。同时它也实现了对计算机硬件资源的高效应用。Google公司已经在MapReduce上申请了专利。
使用MapReduce时,程序员只需要把原有程序移植到Map和Reduce这两个阶段进行处理。其中Map阶段使用一个键值对数据作为输入并产生中间键值对数据。然后Reduce阶段合并所有的Map产生的中间键值对数据。Map和Reduce两个阶段共同组成了MapReduce工作流。当Map阶段输出数据后,Reduce阶段开始执行代码。
MapReduce的执行顺序如下图所示。
image

MapReduce假设执行Map函数时,各执行单元是独立且并行的。实现MapReduce算法的关键是既然执行Map和Reduce函数的各执行单元是独立的,那么如何使它们在网络环境下协助完成整个程序呢?答案是各执行单元以不同的键值和序列数据做并行运算。
一个分布式文件系统通过不同的机器可以复制扩展出多套数据,这也为系统提供了很强的容错性机制并提高了系统可靠性。如果一台机器上的数据有损失,则系统会使用该数据在其他机器上的替代数据资源。
MapReduce中主节点机器上的守护进程将会负责管理所有作业。例如执行作业、调配Mapper、Reducer、Combiner、Partitioner等,以及监控各独立作业内任务的成功或失败状态,最后完成批处理作业。
Apache的Hadoop使用MapReduce的作业在服务器上以并行方式分割处理数据,并存储数据于Hadoop的分布式文件系统内。
使用MapReduce技术的公司包括:
Amazon:这是一个线上的电子商务公司,并使用云服务实现大数据分析业务。
eBay:该公司是一个电子商务公司,并作为用户通过描述进而找到商品的入口。
Google:这是一个互联网搜索引擎公司,用户根据不同的关键词找到相关的网页。
LinkedIn:这是一个专业提供大数据存储和个性化推荐的互联网网站。
Trovit:这是一个用于找工作的垂直类搜索网站。
Twitter:这是一个发布和分享信息的社交网站。
除此之外,还有很多企业使用Hadoop技术作大数据分析。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4月前
|
分布式计算 Hadoop
Hadoop系列 mapreduce 原理分析
Hadoop系列 mapreduce 原理分析
40 1
|
4月前
|
分布式计算 大数据 Scala
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
92 1
|
28天前
|
存储 分布式计算 关系型数据库
bigdata-08-MapReduce原理到实战
bigdata-08-MapReduce原理到实战
21 0
|
3月前
|
存储 分布式计算 监控
Hadoop的JobTracker和TaskTracker在MapReduce中的作用是什么?
Hadoop的JobTracker和TaskTracker在MapReduce中的作用是什么?
55 0
|
4月前
|
分布式计算 资源调度 搜索推荐
《PySpark大数据分析实战》-02.了解Hadoop
大家好!今天为大家分享的是《PySpark大数据分析实战》第1章第2节的内容:了解Hadoop。
48 0
《PySpark大数据分析实战》-02.了解Hadoop
|
4月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
263 0
|
4月前
|
存储 分布式计算 资源调度
干翻Hadoop系列文章【03】:MapReduce概念详解
干翻Hadoop系列文章【03】:MapReduce概念详解
|
4月前
|
存储 分布式计算 搜索推荐
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
46 0
|
2月前
|
分布式计算 DataWorks IDE
MaxCompute数据问题之忽略脏数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
47 0
|
2月前
|
SQL 存储 分布式计算
MaxCompute问题之下载数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
38 0

热门文章

最新文章