初识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