• hadoop的两大核心之一:HDFS总结


    什么是HDFS?

             hadoop distributed file system(hadoop分布式文件系统)

             是一种允许文件通过网络在多台主机上分享的文件系统,

             可让多机器上的多用户分享文件和存储空间.

             特点:

                     1.通透性.让实际上是通过网络来访问文件的动作,由程序与用户看来,

                                        就像是访问本地的磁盘一般.

                     2.容错性.即使系统中有某些节点脱机,整体来说系统仍然可以持续运作

                                        而不会有数据损失.

             适用场景:

                     适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适.

    HDFS的架构

             主从结构

                     主节点,只有一个: namenode

                     从节点,有很多个: datanodes

             namenode负责:

                     接收用户操作请求

                     维护文件系统的目录结构

                     管理文件与block之间关系,block与datanode之间关系

             datanode负责:

                     存储文件

                     文件被分成block存储在磁盘上

                     为保证数据安全,文件会有多个副本

    NameNode(可以理解为老大)

                     是整个文件系统的管理节点.它维护着整个文件系统的文件目录树,

                     文件/目录的元信息和每个文件对应的数据块列表.接收用户的操作请求.

             文件包括(这三个都保存在linux的文件系统中):

                     fsimage:元数据镜像文件,存储某一时段NameNode内存元数据信息.

                     edits:操作日志文件.

                     fstime:保存最近一次checkpoint的时间

             工作特点:

                     1.Namenode始终在内存中保存metedata,用于处理"读请求".

                     2.到有"写请求"到来时,namenode会首先写editlog到磁盘,

                         即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回.

                     3.Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,

                         但是fsimage不会随时与namenode内存中的metedata保持一致,

                         而是每隔一段时间通过合并edits文件来更新内容.Secondary namenode

                         就是用来合并fsimage和edits文件来更新NameNode的metedata的.

    DataNode(可以理解为小弟)

                         提供真实文件数据的存储服务.

                        最基本的存储单位:block(文件块),默认大小为64M

     Secondary NameNode(可以理解为老大的助理)

                         HA(High Available)的一个解决方案.但不支持热备.配置即可

                         默认在安装在NameNode节点上,但这样...不安全!

                     (生产环境中,建议分开安装)

                 执行过程:

                         从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成

                         新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.

                 工作流程:

                         1.secondarynamenode通知namenode切换edits文件

                         2.secondarynamenode从namenode获得fsimage和edits(通过http)

                         3.secondarynamenode将fsimage载入内存,然后开始合并edits

                         4.secondarynamenode将新的fsimage发回给namenode

                         5.namenodenamenode用新的fsimage替换旧的fsimage

    hadoop的整个体系结构就是构建在RPC之上的

                         RPC(Remote Procedure Call),(RPC采用客户机/服务器模式)

                         远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,

                         而不需要了解底层网络技术的协议.

             具体实现过程:

                       首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,

                       然后等待应答信息.在服务器端,进程保持睡眠状态直到调用信息的到达为止.

                       当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,

                       然后等待下一个调用信息,

                  最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行.

             服务端提供的对象必须是一个接口,接口extends VersioinedProtocal

             客户端能够的对象中的方法必须位于对象的接口中.

    http://m.oschina.net/blog/212102

  • 相关阅读:
    Oracle DataGuard搭建(二)
    Oracle DataGuard搭建(一)
    Linux 安装oracle10g 配置dataguard 介绍和步骤
    Oracle DataGuard数据备份方案详解
    汽车行业的DMS系统 IT不变应万变
    汽车行业DMS系统介绍
    详解UML中的聚合,关联,泛化等关系
    ASP.NET将Session保存到数据库中
    C#快捷键
    Asp.net中使用资源文件实现网站多语言
  • 原文地址:https://www.cnblogs.com/chenying99/p/4405787.html
Copyright © 2020-2023  润新知