《R与Hadoop大数据分析实战》一1.6 HDFS和MapReduce架构

1.6 HDFS和MapReduce架构

由于HDFS和MapReduce是Hadoop框架的两个主要特征,我们将专注于它们。先从HDFS开始。

1.6.1 HDFS架构

HDFS是主从架构。主HDFS命名为名称节点(NameNode),而从HDFS命名为数据节点(DataNode)。名称节点是一个管理文件系统命名空间和调整客户端文件访问(开启、关闭、重命名及其他操作)的服务器。它将输入数据分块并且公布存储在各个数据节点上的数据。数据节点是一个从装置,它存储分区数据集的副本并且收到请求时提供数据。它还进行块的创建和删除。
HDFS的内部机理可将文件划分为一个或多个块,这些块储存在一系列数据节点中。在一般情况下,需备份3个复件,HDFS将第一个复件保存在本地节点中,第二个保存在本地另一个节点的磁道中,第3个复件保存在其他节点的磁道中。HDFS支持大文件,它的块容量为64MB,根据需求,可以进行扩充。
HDFS组件
HDFS使用主从架构进行管理,包括以下组件:
名称节点(NameNode):这是HDFS的主干。它维护目录、文件以及管理在数据节点上的块。
数据节点(DataNode):这些是被部署在每台机器上并且提供实际存储的从动装置。它们负责为客户提供读写数据的服务。
代理主节点(Secondary NameNode):它负责周期性检查中断点,如果主节点突然中断,可由储存在代理主节点中的中断点镜像来代替。

1.6.2 MapReduce架构

MapReduce也采用主从架构,典型的MapReduce 包含作业提交、作业的初始化、任务分配、任务执行、进度和状态更新,以及作业完成相关的活动,这主要是由JobTracker节点管理和TaskTracker节点执行。客户端应用程序提交作业给JobTracker,然后在整个集群中划分输入,JobTracker再计算要处理的Map和Reduce执行单元的数量,并命令TaskTracker开始执行该作业。TaskTracker必须复制资源到本地计算机,并启动JVM对数据进行Map和Reduce操作。与此同时,TaskTracker必须周期性地发送更新信息给JobTracker,这称为心跳(heartbeat),用于帮助更新作业ID、作业状态和资源使用情况。
MapReduce组件
MapReduce是由包含以下几部分的主从架构管理的:
JobTracker:它是MapReduce系统的主机节点,管理着集群中的作业及资源。JobTracker规划好每个Map,使TaskTracker中实际正在被处理的数据同Map尽量接近,正运行该数据节点的TaskTracker作业优先执行。
TaskTracker:这些都是部署在每台机器上的客户机节点。它们负责由JobTracker分配的Map和Reduce作业。

1.6.3 通过图示了解HDFS和MapReduce架构

在下图中,NameNode和DataNode在HDFS上,JobTracker和TaskTracker在MapReduce范式中,HDFS和MapReduce主服务器和从服务器部件也包括其中。
本图包含了HDFS和MapReduce的主从组件,其中名称节点和数据节点来自HDFS,JobTracker和TaskTracker来自MapReduce。
两个示例都是由主从组件构成的,在控制MapReduce和HDFS的操作中各有分工。在该图中包括两个部分:前一个是MapReduce层,后一个是HDFS层。

Hadoop是一个Apache的顶级项目,也是一个非常复杂的Java框架。为避免技术上的复杂性,Hadoop社区中已开发了许多Java框架,丰富了其额外的功能,本书中将它们视为Hadoop的子项目。在这里,我们将分别讨论Hadoop的组件,它们是HDFS或MapReduce的抽象层。

时间: 2024-09-29 07:54:49

《R与Hadoop大数据分析实战》一1.6 HDFS和MapReduce架构的相关文章

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

2.1 MapReduce基础概念 如果没有使用过集群或信息传递接口(Message Passing Interface,MPI),那么理解MapReduce基础概念将不会是一件容易的事.更多的实际应用是数据不存放在一个硬盘中而是存放于分布式文件系统中(Distributed File System,DFS),或存放于由Hadoop技术实现的分布式软件中.MapReduce同时也是一个编程模型,它以一种分布式方法进行工作.其中包括信息传递接口(MPI)和同步并行计算模型(Bulk Synchro

《R与Hadoop大数据分析实战》一2.5 在R环境中编写Hadoop MapReduce程序的方式

2.5 在R环境中编写Hadoop MapReduce程序的方式 我们知道对将R工具用于分析的统计学家.网络分析师以及产品经理来说,用MapReduce进行Hadoop大数据处理是一件非常重要的事,因为补充MapReduce的编程知识对于用Hadoop将分析整合到MapReduce来说是必要的.并且,我们知道R是一个一直以来普及程度逐步提升的工具:为了整合R,有许多程序包和函数库一直在改进.因此为了研发基于R和Hadoop计算能力运行的MapReduce算法程序,我们需要R和Hadoop的中间软

《R与Hadoop大数据分析实战》一1.7 Hadoop的子项目

1.7 Hadoop的子项目 Mahout是一个很强大的数据挖掘库,其中包含大部分与数据挖掘有关的机器学习算法,可实现聚类.分类.回归分析及统计建模等,可用于智能应用,它也是一个不错的机器学习库. Apache Mahout是一个商用软件,需要Apache软件分发的许可证.Apache Mahout的目标是建立一个充满活力.反应灵敏.多样化的社区,以方便对项目本身以及潜在使用案例的讨论. 使用Mahout的一些公司如下: Amazon:这是一个提供个性化推荐的购物网站. AOL:这是一个有购物建

《R与Hadoop大数据分析实战》一导读

前 言 组织获得的数据量每一天都在成倍增加.现在组织可以存储大量信息在低成本平台上,例如Hadoop. 如今这些组织面临的难题是如何处理这些数据以及如何从这些数据中获取关键的见解.于是R应运而生.R是一个令人惊讶的工具,它是一个在数据中能够运行先进统计模型的单元,它将原始模型翻译成丰富多彩的图形和可视化视图,而且它有很多和数据科学相关的功能. 然而,R的一个主要缺点是它的可扩展性较差.R的核心技术引擎可以加工和处理非常有限的数据量.正因为在大数据处理中Hadoop十分流行,所以为了可扩展性,下一

《R与Hadoop大数据分析实战》一第2章 编写Hadoop MapReduce程序

第2章 编写Hadoop MapReduce程序 在第1章中,我们学习了如何搭建R和Hadoop开发环境.既然我们对大数据分析感兴趣,接下来就学习如何使用Hadoop MapReduce进行大数据处理.在本章中,我们要讨论MapReduce的基础概念,为何它是不可或缺的,以及如何在Apache Hadoop上进行MapReduce编程等内容.本章节将会涉及如下内容:MapReduce基础概念Hadoop MapReduce技术Hadoop MapReduce原理编写Hadoop MapReduc

《R与Hadoop大数据分析实战》一1.1 安装R

1.1 安装R 可以通过访问R的官方网站下载相应的版本.这里提供了对应三种不同操作系统的下载步骤,包括在Windows.Linux和Mac上安装R.下载最新版本的R,其中包括所有最新的补丁和错误解决方案.对于Windows操作系统,请执行以下步骤: 访问www.r-project.org. 点击CRAN,选择CRAN镜像(CRAN mirror),并选择你的Windows操作系统(捆绑到Linux:Hadoop通常在Linux环境下运行). 从镜像中下载最新的R版本. 执行下载的.exe程序,安

《R与Hadoop大数据分析实战》一1.4 Hadoop的安装

1.4 Hadoop的安装 现在假定你已经了解了R语言,知道它是什么,如何安装它,它的主要特点是什么,以及为什么要使用它.现在,我们需要知道R的局限性(这样能更好地引入对Hadoop的介绍).在处理数据前,R需要将数据加载到随机存取存储器(RAM).因此,数据应该小于现有机器内存.对于数据比机器内存还要大的,我们将其看做大数据(由于大数据还有许多其他定义,这只适用于我们现在所说的例子). 为了避免这类大数据问题,我们需要扩展硬件配置,但这只是一个临时解决方案.为了解决这一问题,我们需要使用一个H

《R与Hadoop大数据分析实战》一2.4 编写Hadoop MapReduce示例程序

2.4 编写Hadoop MapReduce示例程序 现在要通过一个很简单且普通的单词统计(word count)来学习MapReduce.该例子的目标是统计每个单词在文章中出现的次数.这些文章作为MapReduce的输入文件. 在该例中,已经准备了一些文本文件,我们希望计算所有单词在这些文件中出现的频率.我们通过Hadoop MapReduce来进行设计. 本节中,将使用旧版API接口学习Hadoop MapReduce编程.假设读者已经配置了Hadoop的环境变量(请参考第1章的内容).同时

《R与Hadoop大数据分析实战》一2.3 Hadoop MapReduce原理

2.3 Hadoop MapReduce原理 为了更好地理解MapReduce的工作原理,我们将会: 学习MapReduce对象. MapReduce中实现Map阶段的执行单元数目. MapReduce中实现Reduce阶段的执行单元数目. 理解MapReduce的数据流. 深入理解Hadoop MapReduce. 2.3.1 MapReduce对象 由Hadoop的MapReduce技术可以引申出如下3个主要对象: Mapper:它主要用于实现MapReduce的Map阶段的操作.该对象在M