Hadoop Distributed File System 简称HDFS
一、HDFS设计目标 
    1、支持海量的数据,硬件错误是常态,因此需要 ,就是备份
    2、一次写多次读
    3、运行在普通的硬件上面
    4、数据块尽量散步到各个节点中
 
二、HDFS不适合的场景
    1、不适合低延迟的数据,对一个大文件整个文件进行读取,即批量读取而非随机读取
    2、小文件
    3、无法对文件的内容任意修改
 
三、HDFS架构
    1、一个文件被划分成大小固定的多个文件块,分布的存储在集群中的节点中
 
    一个文件一台电脑直接读取需要花费很多时间,但是多个电脑同时读取就可以看出速度啦。
    2、同一个文件块在不同的节点中有多个副本
    
    如果说第一个节点处的文件1失效不能工作了,那么hadoop根据你的配置去自动需找其他的副本,这些副本的拷贝是在hadoop的配置文件中进行指定的,副本的个数都是可以配置的。
    3、一个集中的地方保存文件的分块信息
    
    集中的地方就叫做namenode用于保存分块的信息,namenode只有一个,首先我们必须从namenode获得分块信息,上面就是namenode中分块的信息。
    
                                
     上图是datanode的信息,就是讲文件进行分块存储,然后进行并行读取节点信息,相比传统的方式,一般是将硬盘作为一个节点进行存储,而hadoop则是将分布的主机作为节点进行存储。
    4、HDFS体系结构
    
    5、NameNode   
      
        6、DataNode
        
 
四、总结
    1、Block:一个文件分块,默认为64M
    2、NameNode:保存整个文件的目录信息、文件信息以及文件相应的分块信息,如果namenode支持很多的datanode数据节点信息时,因为读取任意一个文件都需要从namenode中读取信息,那读取namenode就将是文件读取的瓶颈,所以为了避免这个问题的出现,一般将namenode的信息保存到内存中,同时将一些信息持久化到磁盘中,防止读取失败时有备份信息。
    3、DataNode:用于存储Blocks
    4、HDFS的HA策略:NameNode一旦宕机,整个文件系统将无法工作。如果NameNode中的数据丢失,整个文件系统也就丢失了。所以从hadoop2.x开始,HDFS支持NameNode的active-standy模式,就是同时开启多个namenode当active模式工作时,standy模式会同步active所有的信息,当active不能工作时,standy就会转变为active模式来接管namenode。

二、HDFS学习的更多相关文章

  1. 毕业设计 之 二 PHP学习笔记(一)

    毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...

  2. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

  3. 201521123061 《Java程序设计》第十二周学习总结

    201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...

  4. 201521123072《java程序设计》第十二周学习总结

    201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...

  5. 201521123038 《Java程序设计》 第十二周学习总结

    201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...

  6. 201771010134杨其菊《面向对象程序设计java》第十二周学习总结

    第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...

  7. VBA二次学习笔记(1)——文件操作

    说明(2018-9-1 11:20:46): 1. 上班三个月了,累的一逼,真的是钱少事多离家远,每天早上六点起,晚上八点回.哎,少壮不努力啊! 2. 三个月没写博客了,上一篇已经是5.29的了,真的 ...

  8. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  9. 《Linux内核设计与实现》第一、二章学习笔记

    <Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...

  10. Github二次学习

    作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正. 本节课视频内容:https://www ...

随机推荐

  1. js遍历table 和 jquery 遍历table

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  2. unity 创建NGUI字体

    1.NGUI -> Open -> Font Maker 打开FoontMaker窗口. 2.点Source选择.ttf字体,必须是中文命令,否则会出错. 3.点Custom单选按钮,输入 ...

  3. ormlite 删除操作

    ormlite删除操作 DeleteBuilder<TransferDetailDtl, Integer> deleteBuilder = mRawDao.deleteBuilder(); ...

  4. HDU 5741 Helter Skelter

    离线处理+扫描线.题意很容易转化:若干个矩形形成并集,询问一些点是否在并集中? 官方题解不是这样做的....那种做法效率更高,暂时还不会.我这样是4500ms G++过的,C++TLE...... 区 ...

  5. Safari WebApp 模拟 原声APP禁止打开新窗口JS代码

    if(("standalone" in window.navigator) && window.navigator.standalone) { var noddy, ...

  6. sphinx分域搜索

    http://stackoverflow.com/questions/2526407/complex-query-with-sphinx 比如要实现和如下sql代码相同的功能: SELECT * FR ...

  7. iptables详解--转

    出处:http://yijiu.blog.51cto.com/433846/1356254 iptables详解 基本概念: 1.防火墙工作在主机边缘:对于进出本网络或者本主机的数据报文,根据事先设定 ...

  8. Mac linux 安装memcached服务 用法

    今天在Mac上安装memcached服务的时候 由于安装memcached之前需要安装libevent依赖包 所以使用brew install libevent 安装过程中报错 Warning: Yo ...

  9. HDU 1204 基础DP 非连续字段的最大和

    其实这个感觉是一眼题,只不过我真心太菜了. 题目已经告诉你了,有m段,n个数字,那么我们就只需要dp[m][n]即可,然后最后的答案肯定是dp[m][]的那一行,所以其他行都是没有用的,因为我们可以把 ...

  10. android使用support的ActionBar时遇到的问题

    多从网上下载好了support library之后,把android-support-v7-appcompat.jar放到了libs目录下,并加入到了编译路径,本以为万事大吉,可是却报了下面的一个错误 ...