• Hadoop体系概述


    Hadoop体系概述

    Hadoop平台的发展过程

    Hadoop是一个由Apache基金会开发的开源软件,具有可靠性、扩展性的分布式的计算存储系统

    发展历程见文末。

    Hadoop的特点

    • 高可扩展性:Hadoop是一个高度可扩展的存储平台,可以存储和分发横跨数百个并行操作的廉价的服务器数据集群。
    • 成本效益良好:Hadoop的架构被设计为一个向外扩展的架构,可以经济地存储所有公司的数据供以后使用。Hadoop是开源的,项目的软件成本因此会大大降低。
    • 灵活性更好:企业可以利用Hadoop 的灵活性从社交媒体、电子邮件或单击流量等数据源获得宝贵的商业价值。此外,Hadoop的用途非常广,诸如对数处理、推荐系统、数据仓库、市场活动分析以及欺诈检测。
    • Hadoop处理更快:处理大量的非结构化数据,Hadoop能够有效地在几分钟内处理TB级的数据。通过分发数据,Hadoop可以在数据所在的节点上并行地(Parallel)处理,这使得处理非常快速高效。
    • 容错能力强:数据被发送到一个单独的节点,该数据也被复制到集群的其他节点上,这意味着在故障情况下,存在另一个副本可供使用。

    Hadoop名称与技术来源

    Hadoop是由道格·卡丁虚构的一个名字,给一个棕黄色的大象玩具起的名。

    Hadoop的出现来自Google的两款产品:GFS和MapReduce。

    • GFS用于存储不同设备所产生的海量数据,可以解决在网络抓取和索引过程中产生的大文件存储问题。
    • MapReduce运行在GFS之上,负责分布式大数据的计算,可以处理海量网页的索引问题。

    Hadoop体系架构

    Hadoop项目主要包括4个部分。

    1. Hadoop Common:支撑其他模块。
    2. Hadoop Distributed File System:分布式系统对应用提供高吞吐量的访问。
    3. Hadoop Yarn:资源管理和任务调度的一个框架。
    4. Hadoop MapReduce:能够并行处理大数据集的Yarn基本系统。

    HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。

    HDFS在集群上实现了分布式文件系统,MapReduce 在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

    HDFS与MapReduce在Hadoop中的角色

    HDFS体系结构

    一个HDFS集群是由一个NameNode若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作。集群中的DataNode管理存储的数据。
    NameNode是所有HDFS元数据的管理者,用户数据永远不会存储到NameNode上

    MapReduce体系结构

    MapReduce是一种并行编程模式。在早期的MapReduce框架中,主要是由一个单独运行在主节点上的JobTracker进程和运行在每个集群从节点上的TaskTracker进程共同组成的。

    主节点JobTracker负责调度构成一个作业的所有任务,这些任务分布在不同的从节点TaskTracker上。主节点通过心跳机制(心跳,主从节点的通信时间间隔)监控它们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。当一个Job被Client提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。后来MapReduce的体系结构略有变化,实际上原理还是一致的。


    Hadoop发展历程
    大致发展历程如下:



  • 相关阅读:
    弹框只弹一次(cookie)
    多个列表求笛卡尔积的几种方法
    mysqlrouter 8.0.17启动失败
    Eclipse启动项目成功,IDEA报错java.lang.ClassNotFoundException: javax.servlet.Filter
    java的回调机制,讲得很清楚
    Java 命令行 -D
    spring boot项目中,webservice生成客户端,wsdl可配置
    一个老项目的高并发改造,遇到的redis连接不释放问题。
    ExecuterService实现线程池
    子线程获取不到请求中变量的问题
  • 原文地址:https://www.cnblogs.com/pipicai96/p/13872482.html
Copyright © 2020-2023  润新知