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个部分。
- Hadoop Common:支撑其他模块。
- Hadoop Distributed File System:分布式系统对应用提供高吞吐量的访问。
- Hadoop Yarn:资源管理和任务调度的一个框架。
- Hadoop MapReduce:能够并行处理大数据集的Yarn基本系统。
HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。
HDFS在集群上实现了分布式文件系统,MapReduce 在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。
HDFS与MapReduce在Hadoop中的角色
HDFS体系结构
一个HDFS集群是由一个NameNode
若干个DataNode
组成的。其中NameNode
作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作。集群中的DataNode
管理存储的数据。
NameNode
是所有HDFS元数据的管理者,
MapReduce体系结构
MapReduce是一种并行编程模式。在早期的MapReduce框架中,主要是由一个单独运行在主节点上的JobTracker
进程和运行在每个集群从节点上的TaskTracker
进程共同组成的。
主节点JobTracker
负责调度构成一个作业的所有任务,这些任务分布在不同的从节点TaskTracker
上。主节点通过心跳机制(心跳,主从节点的通信时间间隔)监控它们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。当一个Job被Client
提交时,JobTracker
接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker
的执行。后来MapReduce的体系结构略有变化,实际上原理还是一致的。
Hadoop发展历程
大致发展历程如下: