• hadoop简单介绍及架构设计


    hadoop简单介绍及架构设计

    集群

    并行:提升速度的关键

    计算向数据移动

    分布式。分而治之。并行计算

    HDFS

    存储模型:字节

    文件线性切割成块(Block):偏移量 offset (面对原文件的索引)

    Block分散存储在集群节点中

    单一文件Block大小一致,最后一块可能分配不均

    副本:

    副本分散在不同节点中------副本数不要超过节点数量

    只支持一次写入多次读取,同一时刻只有一个写入者,Block的大小不会再次改变,可append追加数据,不能修改

    block数据块,最大存储大小为128M,一个数据块只属于一个文件,每个块默认有三个副本,且互为副本

    架构模型:主从

    元数据:除了文件内容之外的。包含文件的名字,时间,所属用户,权限,文件大小等......

    (主)NameNode节点保存文件元数据,接收客户端的读写请求:单节点 posix(虚拟文件系统,目录树,edits日志文件,Fsimage)基于内存存储:不会和磁盘发生交换,只存在内存中,但会使用磁盘做持久化,

    (从)DataNode节点保存文件Block数据:多节点(保存数据)

    DataNode保存的数据就是映射对应NameNode目录树上的数据,实时汇报block的信息(block列表:block偏移量),位置信息。

    DataNode与Node保存心跳,保存Block列表 (客户端)HdfsClient先与NameNode交互元数据,与DataNode交互文件Block数据,会存储block的元数据信息文件

    SNN(SecondaryNameNode)默认3600秒合并一次 :合并元数据文件(edtis和fsimage)她不是NN的备份,主要工作是帮助NN合并editslog,减少NN启动时间

    Hadoop优点:高容错性,数据自动保存多个副本,副本丢失后,自动恢复。

    适合批处理:移动计算而非数据,数据位置暴露给计算框架

    适合大数据处理:GB.TB.PB级数据,百万规模以上的文件数量,10K+节点

    可构建在廉价的机器上:通过多副本提高可靠性,提供容错和恢复机制。

    缺点:低延迟数据访问,小文件存取,并发写入,文件随机修改。

    1.客户端先向NN发送文件

    2.namenode判断是否有上传权限(没有权限返回给客户端)

    3.NN返回给客户端可以上传的datanode的列表

    4.在客户端把文件切成多个数据块,读入数据队列中。

    5.把数据队列中的packet写入第一个DN

    一个block由多个packet(最大64K)组成

    6.通过管道同步写入第二个DN,第三个DN(以packet为单位写入),每写一个会有一个是否写入成功的报告返回ack,统计一个block返回的ack,统计超过半数ack成功,产生副本,不成功的ack会循环写入直到成功。

    7.block写完返回全部ack则结束。

    1.客户端调用open函数发送请求给NN。

    2.NN检查是否有读的权限

    3.就近原则返回给客户端每个数据库所在的DN列表

    4.就近原则选择第一个DN读取第一个block

    5.把读取的block数据存到数据队列中

    6.读取第二个block。。。。。。

    塔式服务器 机架服务器 刀片服务器

    HDFS文件权限POSIX

    r:read,w:write,x:execute

  • 相关阅读:
    约瑟夫问题的解法集锦
    java调用com组件将office文件转换成pdf
    hdu(1069)——Monkey and Banana(LIS变形)
    Unix网络编程之环境搭建
    atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t
    怎样使Dialog像Activity一样随心所欲的使用?
    获取全部分组中某列最大的行
    Class C++
    spring mvc +Mybatis3.1 整合的时候异常
    Linux 编译C++ 与 设置 Vim
  • 原文地址:https://www.cnblogs.com/huzicourenao/p/11006045.html
Copyright © 2020-2023  润新知