1.5 Hadoop计算模型—MapReduce
MapReduce是Google公司的核心计算模型,它将运行于大规模集群上的复杂的并行计算过程高度地抽象为两个函数:Map和Reduce。Hadoop是Doug Cutting受到Google发表的关于MapReduce的论文启发而开发出来的。Hadoop中的MapReduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千台商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集,实现了Hadoop在集群上的数据和任务的并行计算与处理。
一个Map/Reduce作业(Job)通常会把输入的数据集切分为若干独立的数据块,由Map任务(Task)以完全并行的方式处理它们。框架会先对Map的输出进行排序,然后把结果输入给Reduce任务。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。
通常,Map/Reduce框架和分布式文件系统是运行在一组相同的节点上的,也就是说,计算节点和存储节点在一起。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这样可以使整个集群的网络带宽得到非常高效的利用。
Map/Reduce框架由一个单独的Master JobTracker和集群节点上的Slave TaskTracker共同组成。Master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上。Master监控它们的执行情况,并重新执行已经失败的任务,而Slave仅负责执行由Master指派的任务。
在Hadoop上运行的作业需要指明程序的输入/输出位置(路径),并通过实现合适的接口或抽象类提供Map和Reduce函数。同时还需要指定作业的其他参数,构成作业配置(Job Configuration)。在Hadoop的JobClient提交作业(JAR包/可执行程序等)和配置信息给JobTracker之后,JobTracker会负责分发这些软件和配置信息给slave及调度任务,并监控它们的执行,同时提供状态和诊断信息给JobClient。
《Hadoop实战第2版》——1.5节Hadoop计算模型—MapReduce
时间: 2024-09-26 15:55:35
《Hadoop实战第2版》——1.5节Hadoop计算模型—MapReduce的相关文章
《Hadoop实战第2版》——1.6节Hadoop数据管理
1.6 Hadoop数据管理前面重点介绍了Hadoop及其体系结构与计算模型MapReduce,现在开始介绍Hadoop的数据管理,主要包括Hadoop的分布式文件系统HDFS.分布式数据库HBase和数据仓库工具Hive. 1.6.1 HDFS的数据管理HDFS是分布式计算的存储基石,Hadoop分布式文件系统和其他分布式文件系统有很多类似的特性: 对于整个集群有单一的命名空间: 具有数据一致性,都适合一次写入多次读取的模型,客户端在文件没有被成功创建之前是无法看到文件存在的: 文件会被分割成
《Hadoop实战第2版》——导读
目 录 前 言第1章 Hadoop简介1.1 什么是Hadoop1.2 Hadoop项目及其结构1.3 Hadoop体系结构1.4 Hadoop与分布式开发1.5 Hadoop计算模型-MapReduce1.6 Hadoop数据管理1.7 Hadoop集群安全策略1.8 本章小结第2章 Hadoop的安装与配置2.1 在Linux上安装与配置Hadoop2.2 在Mac OSX上安装与配置Hadoop2.3 在Windows上安装与配置Hadoop2.4 安装和配置Hadoop集群2.5 日志分
《Hadoop实战第2版》——2.1节在Linux上安装与配置Hadoop
2.1 在Linux上安装与配置Hadoop 在Linux上安装Hadoop之前,需要先安装两个程序: 1)JDK 1.6(或更高版本).Hadoop是用Java编写的程序,Hadoop的编译及MapReduce的运行都需要使用JDK.因此在安装Hadoop前,必须安装JDK 1.6或更高版本. 2)SSH(安全外壳协议),推荐安装OpenSSH.Hadoop需要通过SSH来启动Slave列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分开集群
《Hadoop实战第2版》——3.2节MapReduce计算模型
3.2 MapReduce计算模型 要了解MapReduce,首先需要了解MapReduce的载体是什么.在Hadoop中,用于执行MapReduce任务的机器有两个角色:一个是JobTracker,另一个是TaskTracker.JobTracker是用于管理和调度工作的,TaskTracker是用于执行工作的.一个Hadoop集群中只有一台JobTracker. 3.2.1 MapReduce Job 在Hadoop中,每个MapReduce任务都被初始化为一个Job.每个Job又可以分为两
《Hadoop实战第2版》——1.2节Hadoop项目及其结构
1.2 Hadoop项目及其结构 现在Hadoop已经发展成为包含很多项目的集合.虽然其核心内容是MapReduce和Hadoop分布式文件系统,但与Hadoop相关的Common.Avro.Chukwa.Hive.HBase等项目也是不可或缺的.它们提供了互补性服务或在核心层上提供了更高层的服务.图1-1是Hadoop的项目结构图. 下面将对Hadoop的各个关联项目进行更详细的介绍. 1)Common:Common是为Hadoop其他子项目提供支持的常用工具,它主要包括FileSystem.
《Hadoop实战第2版》——3.4节Hadoop流
3.4 Hadoop流 Hadoop流提供了一个API,允许用户使用任何脚本语言写Map函数或Reduce函数.Hadoop流的关键是,它使用UNIX标准流作为程序与Hadoop之间的接口.因此,任何程序只要可以从标准输入流中读取数据并且可以写入数据到标准输出流,那么就可以通过Hadoop流使用其他语言编写MapReduce程序的Map函数或Reduce函数.举个最简单的例子(本例的运行环境:Ubuntu,Hadoop-0.20.2): bin/hadoop jar contrib/stream
《Hadoop实战第2版》——1.1节什么是Hadoop
1.1 什么是Hadoop 1.1.1 Hadoop概述 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构.HDFS的高容错性.高伸缩性等优点允许用户将Hadoop部署在低廉的硬件上,形成分布式系统:MapReduce分布式编程模型允许用户在不了解分
《Hadoop实战第2版》——1.7节Hadoop集群安全策略
1.7 Hadoop集群安全策略众所周知,Hadoop的优势在于其能够将廉价的普通PC组织成能够高效稳定处理事务的大型集群,企业正是利用这一特点来构架Hadoop集群.获取海量数据的高效处理能力的.但是,Hadoop集群搭建起来后如何保证它安全稳定地运行呢?旧版本的Hadoop中没有完善的安全策略,导致Hadoop集群面临很多风险,例如,用户可以以任何身份访问HDFS或MapReduce集群,可以在Hadoop集群上运行自己的代码来冒充Hadoop集群的服务,任何未被授权的用户都可以访问Data
《Hadoop实战第2版》——3.3节MapReduce任务的优化
3.3 MapReduce任务的优化相信每个程序员在编程时都会问自己两个问题"我如何完成这个任务",以及"怎么能让程序运行得更快".同样,MapReduce计算模型的多次优化也是为了更好地解答这两个问题.MapReduce计算模型的优化涉及了方方面面的内容,但是主要集中在两个方面:一是计算性能方面的优化:二是I/O操作方面的优化.这其中,又包含六个方面的内容. 任务调度任务调度是Hadoop中非常重要的一环,这个优化又涉及两个方面的内容.计算方面:Hadoop总会优