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. Hibernate框架简述(转)

    转自:http://www.cnblogs.com/eflylab/archive/2007/01/09/615338.html Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用 ...

  2. 项目记事【Hibernate-1】:调用 saveOrUpdate() 方法出错

    Hibernate 版本:3.3.1 背景: 后端编辑一个对象,该对象(ProductDO)下,有一个另一个自定义对象(ProductLiabilityDO)的 OneToMany 关系,如下: @O ...

  3. Kafka介绍 (官方文档翻译)

    摘要:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动 ...

  4. ACM程序设计选修课——1049: Efface Numbers(贪心)

    1049: Efface Numbers Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 9  Solved: 4 [Submit][Status][W ...

  5. [转] Makefile 基础 (8) —— Makefile 隐含规则

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...

  6. 在SpringBoot中对SpringSecurity的基本使用

    参考文献: Spring Security Architecture What is authentication in Spring Security? Spring Security是一个能够为基 ...

  7. UVA 116 Unidirectional TSP(DP最短路字典序)

    Description    Unidirectional TSP  Background Problems that require minimum paths through some domai ...

  8. 我要好offer之 搜索算法大总结

    1. 二分搜索 详见笔者博文:二分搜索的那些事儿,非常全面 2. 矩阵二分搜索 (1) 矩阵每行递增,且下一行第一个元素大于上一个最后一个元素 (2) 矩阵每行递增,且每列也递增 3. DFS 深度优 ...

  9. P1340 送礼物

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后,他就不这么认为了. ...

  10. linux 下高精度时间

    今天在公司代码中看到了使用select函数的超时功能作定时器的用法,便整理了如下几个Linux下的微秒级别的定时器.在我的Ubutu10.10 双核环境中,编译通过. /* * @FileName:  ...