hadoop入门

Hadoop 入门

思考题

如何在1T的大文件中找出重复的单词
    分治法
        分布式
        分而治之:并行计算
        计算向数据移动
        用哈希进行分类,注意哈希碰撞
    集群思想
        并行:提升速度的关键
        分布式运行
        计算与数据在一起
            计算向数据移动

hadoop介绍

hadoop的思想之源:google的论文

openstack: nasa——云计算平台

问题:

    面对的数据和计算难题
        大量的网页怎么存储
         搜索算法

思路:

    带给我们的关键技术和思想
        Google三驾马车
            GFS
            Map-Reduce
            Bigtable
  • Hadoop创始人介绍

    Hadoop作者Doug cutting,就职Yahoo期间开发了Hadoop项目,目前在Cloudera 公司从事架构工作

  • hadoop简介

    分布式存储系统HDFS(Hadoop Distributed File System )POSIX
         分布式存储系统
         提供了 高可靠性、高扩展性和高吞吐率的数据存储服务
    分布式计算框架MapReduce
         分布式计算框架(计算向数据移动)
        具有 易于编程、高容错性和高扩展性等优点。
    分布式资源管理框架YARN(Yet Another Resource Management)
        负责集群资源的管理和调度
    
  • HDFS

    存储模型
        存储模型:字节
    偏移量
        文件线性切割成块(Block):偏移量 offset (byte)
    分散
        Block分散存储在集群节点中
        单一文件Block大小一致,文件与文件可以不一致
    副本数
        Block可以设置副本数,副本分散在不同节点中
            副本数不要超过节点数量
        文件上传可以设置Block大小和副本数
    读写
        已上传的文件Block副本数可以调整,大小不变
        只支持一次写入多次读取,同一时刻只有一个写入者
        可以append追加数据
    
  • hdfs架构模型

    元数据
        文件元数据MetaData,文件数据  
            元数据
            数据本身
    节点
        (主)NameNode节点保存文件元数据:单节点   posix
        (从)DataNode节点保存文件Block数据:多节点
    信息交互
        DataNode与NameNode保持心跳,提交Block列表
        HdfsClient与NameNode交互元数据信息
        HdfsClient与DataNode交互文件Block数据
    
  • hdfs架构图

深入分析

  • NameNode

        存储方式
            基于内存存储 :不会和磁盘发生交换
                只存在内存中
                持久化
        功能
            NameNode主要功能:
                接受客户端的读写服务
                收集DataNode汇报的Block列表信息
        信息
            NameNode保存metadata信息包括
                文件owership和permissions
                文件大小,时间
                (Block列表:Block偏移量),位置信息
                Block每副本位置(由DataNode上报)
                静态信息和动态信息
        持久化
            NameNode持久化
                NameNode的metadate信息在启动后会加载到内存
                metadata存储到磁盘文件名为”fsimage”
                Block的位置信息不会保存到fsimage
                edits记录对metadata的操作日志
    
  • DataNode

    文件形式
        本地磁盘目录存储数据(Block),文件形式
    信息交互
        同时存储Block的元数据信息文件
        启动DN时会向NN汇报block信息
    心跳
        通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN
    
  • HDFS优缺点

    HDFS优点
        高容错性
            数据自动保存多个副本
             副本丢失后,自动恢复
        适合批处理
            移动计算而非数据
            数据位置暴露给计算框架(Block偏移量)
        适合大数据处理
            GB 、TB 、甚至PB 级数据
            百万规模以上的文件数量
            10K+ 节点
        可构建在廉价机器上
            通过多副本提高可靠性
            提供了容错和恢复 机制
    HDFS缺点
        低延迟数据访问
            比如毫秒级
            低延迟与高吞吐率
        小文件存取
            占用NameNode 大量内存
            寻道时间超过读取时间
        并发写入、文件随机修改
            一个文件只能有一个写者
            仅支持append
    
  • SecondaryNameNode

    它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits log,减少NN启动时间。
    SNN执行合并时机
        根据配置文件设置的时间间隔fs.checkpoint.period  默认3600秒
        根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认是64MB 
    
  • DataNode block块的放置策略

    Block的副本放置策略
        第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
        第二个副本:放置在于第一个副本不同的 机架的节点上。
        第三个副本:与第二个副本相同机架的节点。
        更多副本:随机节点
    

HDFS的读写流程

  • HDFS写流程

        切分文件Block
        按Block线性和NN获取DN列表(副本数)
        验证DN列表后以更小的单位流式传输数据
            各节点,两两通信确定可用
        Block传输结束后:
            DN向NN汇报Block信息
            DN向Client汇报完成
            Client向NN汇报完成
        获取下一个Block存放的DN列表
        最终Client汇报完成
        NN会在写流程更新文件状态
    
  • HDFS读流程

        和NN获取一部分Block副本位置列表
        线性和DN获取Block,最终合并为一个文件
        在Block副本列表中按距离择优选取
    
  • HDFS安全模式

    为什么有安全模式?
        在HDFS启动的时候,加载fsimage,因为NameNode中没有动态元数据信息,所以等待DataNode向NameNode返回信息,再工作
    hadoop1.x集群启动的过程:
    1、namenode启动的时候,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。
    2、一旦在内存中成功建立文件系统元数据的映射,则创建一个新的fsimage文件(这个操作不需要SecondaryNameNode)和一个空的编辑日志。
    3、此刻namenode运行在安全模式。即namenode的文件系统对于客服端来说是只读的。(显示目录,显示文件内容等。写、删除、重命名都会失败)。
    4、在此阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的, 在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束
    5、当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数,系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值