Hadoop的两大功能:海量数据存储和海量数据分析

Hadoop2的三大核心组件是:HDFS、MapperReducer和yarn

1、HDFS:分布式文件系统海量数据存储

2、MapperReducer:运算框架,海量数据分析

3、yarn:资源调度管理集群

        HDFS工作机制:基于namenode和datanode

1、namenode:响应客户端的请求;负责维护整个hdfs文件系统的文件夹树。以及每个路径(文件)所相应的block块信息(block的id,及所在的datanodeserver);
元数据的管理

2、datanode:存储管理用户的文件数据;定期向namenode汇报自己所持有的block信息(通过心跳机制RPC)

Namenode安全模式:1)、当nameonde发现文件block丢失的数量达到一个配置的门限时。就会进入安全模式,它在这个模式下等待datanode向它汇报block信息;2)、在
安全模式下。namenode能够提供元数据查询的功能。可是不能改动。

HDFS读流程:

1、跟namenode通信查询元数据。找到文件块所在的datanodeserver

2、挑选一台datanode(就近原则。然后随机)server,请求建立socket流

3、datanode開始发送数据(从磁盘里面读取数据放入流。以packet为单位来做校验)

4、客户端以packet为单位接收,如今本地缓存,然后写入目标文件

HDFS写流程:

1、根namenode通信请求上传文件,namenode检查目标文件是否已存在,父文件夹是否存在

2、namenode返回能否够上传

3、client请求第一个 block该传输到哪些datanodeserver上

4、namenode返回3个datanodeserverABC

5、client请求3台dn中的一台A上传数据(本质上是一个RPC调用。建立pipeline),A收到请求会继续调用B,然后B调用C,将真个pipeline建立完毕。逐级返回客户端

6、client開始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存)。以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答

7、当一个block传输完毕之后,client再次请求namenode上传第二个block的server。

Hadoop知识汇总的更多相关文章

  1. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  2. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  3. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  4. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  5. 【转】ACM博弈知识汇总

    博弈知识汇总 转自:http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍 ...

  6. 最全的jQuery知识汇总

    本帖最后由 断天涯大虾 于 2016-12-26 10:22 编辑<ignore_js_op> jQuery是什么? jQuery是javascript编写一个可重用的JavaScript ...

  7. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  8. ACM博弈知识汇总(转)

    博弈知识汇总 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻 ...

  9. [转]【eoeAndroid索引】史上最牛最全android开发知识汇总

    一.开发环境搭建 (已完成) 负责人:kris 状态:已完成 所整理标签为:搭建 SDK JDK NDK Eclipse ADT 模拟器 AVD 调试器(DEBUG) DDMS 测试 日志 Logca ...

随机推荐

  1. golang(一)-for 循环

    golang 的循环控制中大多还是和java 很相似的 , 不过golang只有一种循环 就是for循环: for 有三个循环控制关键字 : break . continue . goto  其中   ...

  2. Ubuntu OS应用Runtime Enviroment

    在这篇文章中.我们将介绍Ubuntu OS的Runtime Environment.在文章"App confinement: Security policy for click packag ...

  3. JAVA Date超强工具类,可直接取代util.Date使用

    package net.maxt.util; import java.text.DateFormat; import java.text.ParseException; import java.tex ...

  4. Git 学习(二)版本库创建

    Git 版本库创建 什么是版本库(repository)? 可理解为文件仓库.由Git管理每个文件的新增.修改及删除,但这个仓库可以追溯历史.可还原至任意历史节点. 版本库创建 创建一个版本库非常简单 ...

  5. Servlet Filter 示例

    1. CityQuery.java package com.xxx.servlet; import com.google.common.collect.Lists; import com.xxx.da ...

  6. poj 1995 Raising Modulo Numbers 题解

    Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6347   Accepted: ...

  7. 数学图形(1.35)Kappa curve

    不知道这个曲线和那个运动品牌背靠背有什么关系.阿迪原先的商标是个三叶草,难道背靠背也是由数学图形来的? 以下是维基上的解释. In geometry, the kappa curve or Gutsc ...

  8. Informatica 常用组件Source Qualifier之五 User Defined Join

    User defined join :      输入用户定义的联接与输入自定义 SQL 查询类似.但是,只需输入 WHERE 子句的内容,而不是整个查询. 添加用户定义的联接时,源限定符转换包括默认 ...

  9. C#连接SQL Server数据库进行简单操作[转]

    环境:VS2010 + SqlServer 2008 首先,按照面向对象的程序设计思想,设计一个数据库操作工具类MyTool.cs,该类中封装了关于数据库连接和操作的方法,各个功能模块在需进行数据库操 ...

  10. PHP接收跨域请求header 头设置

    header("Access-Control-Allow-Origin: http://a.com"); // 允许a.com发起的跨域请求 //如果需要设置允许所有域名发起的跨域 ...