HDFS和MapReduce是Hadoop的两大核心。

整个Hadoop体系结构主要是通过HDFS来实现分布式存储的底层支持的,而且通过MapReduce来实现分布式并行任务处理的程序支持。

一、HDFS体系结构

HDFS採用了主从(Master/Slave)结构模型。一个HDFS集群是由一个NameNode和若干个DataNode组成的。当中,NameNode作为主server。管理文件系统的命名空间和client对文件的訪问操作;集群中的DataNode管理存储的数据。HDFS典型的部署是在一个专门的机器上执行NameNode,集群中的其它机器各执行一个DataNode。也能够在执行NameNode的机器上同一时候执行DataNode。或者一台机器上执行多个DataNode。

一个集群仅仅有一个NameNode的设计大大简化了系统架构。

从终于用户的角度来看,它就像传统的文件系统一样。能够通过文件夹路径对文件运行CRUD(Create/Read/Update/Delete)操作。

NameNode管理文件系统的元数据,DataNode存储实际的数据。

client通过同NameNode和DataNodes交互訪问文件系统。client联系NameNode以获取文件的元数据,而真正的文件I/O操作时直接和DataNode进行交互的。

下图为HDFS体系结构

文件写入(Orclient文件上传):

1、Client向NameNode发起文件写入的请求。

2、NameNode依据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

3、Client将文件划分为多个Block,依据DataNode的地址信息,按顺序写入到每个DataNode块中。

文件读取:

1、Client向NameNode发起文件读取的请求。

2、NameNode返回文件存储的DataNode的信息。

3、Client读取文件信息。

client:文件切分为block依次上传;与NameNode交互获取文件位置信息。与DataNode交互读取或者写入文件。管理和訪问HDFS

二、MapReduce体系结构

MapReduce是一种并行编程模式,利用这样的模式软件开发人员能够轻松编写出分布式并行程序。在Hadoop体系结构中,MapReduce是一个简单易行的软件框架。基于它能够将任务分发到由上千台商用机器组成的集群上,并以一种可靠容错的方式并行处理大量数据集,实现Hadoop并行任务处理能力。

MapReduce框架是由一个单独执行在主节点的JobTracker和执行在每一个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的全部任务,这些任务分布在不同的从节点上。

主节点监控他们的执行情况,而且又一次执行之前失败的任务;从节点仅负责由主节点指派的任务。

当一个Job被提交时,JobTracker接收到提交作业和其配置信息之后,就会将配置信息等分发给从节点,同一时候调度任务并监控TaskTracker的运行

兴许会不断完好补充……

Hadoop学习笔记(一)——Hadoop体系结构的更多相关文章

  1. [转帖]hadoop学习笔记:hadoop文件系统浅析

    hadoop学习笔记:hadoop文件系统浅析 https://www.cnblogs.com/sharpxiajun/archive/2013/06/15/3137765.html 1.什么是分布式 ...

  2. Hadoop学习笔记【Hadoop家族成员概述】

    Hadoop家族成员概述 一.Hadoop简介 1.1 什么是Hadoop? Hadoop是一个分布式系统基础架构,由Apache基金会所开发,目前Yahoo!是其最重要的贡献者. Hadoop实现了 ...

  3. 吴裕雄--天生自然HADOOP学习笔记:hadoop集群实现PageRank算法实验报告

    实验课程名称:大数据处理技术 实验项目名称:hadoop集群实现PageRank算法 实验类型:综合性 实验日期:2018年 6 月4日-6月14日 学生姓名 吴裕雄 学号 15210120331 班 ...

  4. 吴裕雄--天生自然Hadoop学习笔记:Hadoop简介

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储.Hadoop实现了一个分布式文件系统(H ...

  5. Hadoop学习笔记—6.Hadoop Eclipse插件的使用

    开篇:Hadoop是一个强大的并行软件开发框架,它可以让任务在分布式集群上并行处理,从而提高执行效率.但是,它也有一些缺点,如编码.调试Hadoop程序的难度较大,这样的缺点直接导致开发人员入门门槛高 ...

  6. Hadoop学习笔记—3.Hadoop RPC机制的使用

    一.RPC基础概念 1.1 RPC的基础概念 RPC,即Remote Procdure Call,中文名:远程过程调用: (1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网 ...

  7. [Hadoop] Hadoop学习笔记之Hadoop基础

    1 Hadoop是什么? Google公司发表了两篇论文:一篇论文是“The Google File System”,介绍如何实现分布式地存储海量数据:另一篇论文是“Mapreduce:Simplif ...

  8. Hadoop学习笔记(3) Hadoop I/O

    1. HDFS的数据完整性 HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和.datanode负责在验证收到的数据后存储数据及其校验和.正在写数据的客户端将数据及其校验和发送到由一系列d ...

  9. Hadoop学习笔记(3) Hadoop文件系统二

    1 查询文件系统 (1) 文件元数据:FileStatus,该类封装了文件系统中文件和目录的元数据,包括文件长度.块大小.备份.修改时间.所有者以及版权信息.FileSystem的getFileSta ...

  10. Hadoop学习笔记(3) Hadoop文件系统一

    1. 分布式文件系统,即为管理网络中跨多台计算机存储的文件系统.HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上.HDFS的构建思路为:一次写入.多次读取是最高效的访问模式.数据集通常由 ...

随机推荐

  1. iOS学习笔记32-iCloud入门

    一.iCloud云服务 iCloud是苹果提供的云端服务,用户可以将通讯录.备忘录.邮件.照片.音乐.视频等备份到云服务器并在各个苹果设备间直接进行共享而无需关心数据同步问题,甚至即使你的设备丢失后在 ...

  2. POJ #1025 Department

    模拟题. 这题第一个障碍是现在少见的循环电梯 ('pater-noster' elevator) "The building has `pater-noster' elevator, i.e ...

  3. [图论训练]BZOJ 3245: 最快路线【最短路】

    Description 精 明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知 道能开多快.不过有一个合理 ...

  4. 阿里面试题:说说HashMap的扩容过程?

    这是一道阿里的面试题,考察你对HashMap源码的了解情况,废话不多说,咱们就直接上源码吧! jdk 1.7 源码 void resize(int newCapacity) { Entry[] old ...

  5. [bzoj2302][HNOI2011]problem c 递推,dp

    [HAOI2011]Problem c Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 949  Solved: 519[Submit][Status] ...

  6. bzoj3210 花神的浇花集会 坐标

    题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与3170不同的是这次选择的点无需是n个点中的一个 首先将每个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半 ...

  7. 最新版浏览器报错net::ERR_INSECURE_RESPONSE原因

    访问的网址与接口请求的域名不一致,新版的chrome浏览器出于安全的考虑会将请求进行拦截,并报错net::ERR_INSECURE_RESPONSE

  8. hdu 4602 递推关系矩阵快速幂模

    Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  9. XML布局文件于Java代码使用问题

    2013-9-21 问题一.不同的XML文件中相同类型的控件id相同,那么将这些不同的布局xml组合在一个大的布局中,如何解决相同id问题 ? 解决办法: 不同的布局文件XML要组合成一个新的大布局, ...

  10. CSS 实践:实现下拉菜单的方法

    基于display属性的切换. 将需要不可见的二级菜单ul元素的display元素设为none,当需要可见的时候改为block. .menu ul li ul { display: none; } . ...