初识Hadoop架构

初识hadoop

Google的“三驾马车“

  • GFS
  • MapReduce
  • BigTable

HDFS

  • HDFS是什么?

    • HDFS是基于流数据访问模式的分布式文件系统,支持海量数据的存储,允许用户将成百上千的计算机,组成存储集群。
    • 优点:可以处理超大文件、支持流式数据访问(一次写入,多次读取)、低成本运行。
    • 缺点:不适合处理低延迟的数据访问,主要处理高数据吞吐量的应用;不适合处理大量的小文件,这样会浪费NameNode内存;不适合多用户写入及任意修改文件。


  • HDFS的组成架构

    • NameNode

      • NameNode即名称节点,是HDFS的管理者。
      • 主要功能(三个):
      • 管理和维护 HDFS 的命名空间:命名空间镜像文件( fsimage ),操作日志文件( edits )

        • fsimage:存储 hadoop 文件系统中的所有目录和文件的序列化信息
        • edits:记录 HDFS 最新状态, HDFS 客户端执行的所有写操作记录在 editlog 中
      • 管理 DataNode 上的数据块:在 HDFS 中,一个文件被分成一个或多个数据块,这些数据块存储在 DataNode 中, NameNode 通过“文件名-->数据块”映射或者“数据块-->DataNode”来确定
      • 接收客户端的请求

    • DataNode

      • 每个磁盘都有默认的数据块大小,它是磁盘进行读、写的最小单位,HDFS默认数据块大小为128MB。数据块如此大,目的是减少寻址开销,减少磁盘一次读取时间。
      • 功能:
      • 保存数据块:每个数据块对应一个元数据信息文件,用来描述该数据块属于哪个文件,是第几个数据块
      • 运行 DataNode 线程,向 NameNode 定期汇报数据块信息
      • 定期向 NameNode 发送心跳信息保持联系

    • SecondaryNameNode

      • 即第二名称节点,主要职责是定期把 NameNode 的 fsimage 和 edits 下载到本地,并将它们加载到内存进行合并,最后将合并后的新的 fsimage 上传回 NameNode ,此过程称为检查点 ( CheckPoint )。
      • 定期合并 fsimage 和 edits 文件,使 edits 大小保持在限制范围内,减少重新启动 NameNode 时合并 fsimage 和 edits 耗费的时间。



  • HDFS Shell

    • HDFS Shell 命令是用类似于 Linux Shell 的命令,来操作文件系统。
    • 如:hdfs dfs -ls,列出文件或目录。

  • HDFS API

    • 当然, Hadoop 提供了多种 HDFS 的访问接口,其中 Java API可用代码的方式来操作文件系统。
    1. 实例化 Configuraion
    2. 实例化 FileSystem
    3. 设置目标对象的路径
    4. 执行文件或目录操作

  • 高可用 HA

  • 联邦 Fedeeration

你可能感兴趣的:(初识Hadoop架构)