Hadoop@大数据开发专家(40K以上)必须掌握技能!( 二 )

  • 用户可以在不了解分布式底层细节的情况下 , 轻松地在 Hadoop 上开发和运行处理海量数据的应用程序 。 低成本、高可靠、高扩展、高有效、高容错等特性让 hadoop 成为最流行的大数据分析系统 。
  • (2)Hadoop 生态里的最核心技术
    • HDFS:Hadoop 分布式文件系统 , 它是Hadoop 的核心子项目 。
    • MapReduce :Hadoop 中的 MapReduce 是一个使用简单的软件框架 , 基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上 , 并能可靠容错地并行处理 TB 级别的数据集 。
    • Hive :是建立在 Hadoop 体系架构上的一层 SQL抽象 , 使得数据相关人员使用他们最为熟悉的 SQL 语言就可以进行海量数据的处理、分析和统计工作 , 而不是必须掌握 Java 等编程语言和具备开发MapReduce 程序的能力 。 HiveSQL 际上先被 SQL 解析器进行解析然后被 Hive 框架解析成一个MapReduce 可执行计划 , 并按照该计划生成 MapReduce 任务后交给 Hadoop 集群处理 。
    (3)HDFS
    • 文件系统
    文件系统是操作系统提供的磁盘空间管理服务 , 该服务只需要用户指定文件的存储位置及文件读取路径 , 而不需要用户了解文件在磁盘上是如何存放的 。 对于我们编程人员也是这样的 。
    但是当文件所需空间大于本机磁盘空间时 , 应该如何处理呢?
    加磁盘 , 但是加到一定程度就有限制了 。
    加机器 , 即用远程共享目录的方式提供网络化的存储 , 这种方式可以理解为分布式文件系统的雏形 , 它可以把不同文件放入不同的机器中 , 而且空间不足时可继续加机器 , 突破了存储空间的限制 。
    • 传统的分布式文件系统---架构

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    • 传统的分布式文件系统---访问过程

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    • 传统的分布式文件系统带来的问题
    各个存储结点的负载不均衡 , 单机负载可能极高 。 例如 , 如果某个文件是热门文件 , 则会有很多用户经常读取这个文件 , 这就会造成该文件所在机器的访问压力极高 。
    数据可靠性低 。 如果某个文件所在的机器出现故障 , 那么这个文件就不能访问了 , 甚至会造成数据的丢失 。
    文件管理困难 。 如果想把一些文件的存储位置进行调整 , 就需要查看目标机器的空间是否够用 , 并且需要管理员维护文件位置 , 在机器非常多的情况下 , 这种操作就极为复杂 。
    • HDFS 的基本原理

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    • HDFS 的体系结构(一主多从)

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    • HDFS 的文件读取

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    • HDFS 的文件写入

    Hadoop@大数据开发专家(40K以上)必须掌握技能!
    本文插图

    • HDFS 异常处理之NameNode
    (1) 两个核心文件
    FsImage文件:


    推荐阅读