Hadoop

12/31/2023 大数据

目录


参考:


# 什么是Hadoop

官网:Apache Hadoop (opens new window)

Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许用户使用简单的编程模型实现在大量跨机器集群上对海量数据集进行分布式处理。Hadoop本身不是依靠硬件来提供高可用性,而是设计用于在应用层检测和处理故障,从而在一组计算机之上提供高可用性服务,每个计算机都可能出现故障。

  • 狭义上Hadoop指的是Apache软件基金会的一款开源软件。
  • 广义上Hadoop指的是围绕Hadoop打造的大数据生态圈。

百度百科:

  • Apache Hadoop (opens new window) 是一套用于在由通用硬件构建的大型集群上运行应用程序的框架。它实现了Map/Reduce编程范型,计算任务会被分割成小块(多次)运行在不同的节点上。除此之外,它还提供了一款分布式文件系统(HDFS),数据被存储在计算节点上以提供极高的跨数据中心聚合带宽。

  • Hadoop (opens new window)是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX (opens new window)的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 。

# Hadoop核心组件

  • Hadoop HDFS (分布式文件存储系统):解决海量数据存储,一种分布式文件系统,可提供对应用程序数据的高吞吐量访问;
  • Hadoop YARN (集群资源管理和任务调度框架): 解决资源任务调度,作业调度和集群资源管理的框架;
  • Hadoop MapReduce (分布式计算框架):解决海量数据计算,一种用于并行处理大型数据集的基于YARN的系统;

核心组件现状

  • HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位;

  • YARN作为分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎运行,保证了Hadoop地位;

  • MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端, 导致企业一线几乎不再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据;

# Hadoop发展历史

Hadoop由知名项目Apache Lucene的创始人道格·卡丁(doug Cutting)创建。

  • 起源于Apache Lucene子项目Nutch,Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能等。但随着抓取网页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。
  • 2003年,谷歌发表的一篇论文《The Google file system》,描述的是谷歌分布式文件系统GFS,给了Apache Nutch项目的开发者灵感。
  • 2004年,Nutch的开发者开始着手Nutch的分布式文件系统NDFS的开发。
  • 2004年,谷歌又发表了一篇介绍MapReduce系统的论文《MapReduce: Simpliied Data Processing on Large Clusters》。
  • 2005年,Nutch项目实现了一个MapReduce系统。
  • 2006年,开发人员将NDFS和MapReduce移出Nutch项目形成一个子项目,命名Hadoop。
  • 2008年,Hadoop已称为Apache的顶级项目。
  • 2008年4月,Hadoop打破世界记录,成为最快排序1TB数据的系统,排序时间为209秒。
  • 2009年,Hadoop把1TB数据的排序时间缩短到62秒。
  • 从此名声大噪,现在很多公司都在使用,如雅虎,last.fm,FaceBook,《纽约时报》等等。
  • 目前Hadoop的版本发展,hadoop1.x > hadoop2.x > hadoop3.x

# Hadoop架构变迁

  • Hadoop 1.0

    • HDFS (分布式文件存储)

    • MapReduce (资源管理和分布式数据处理)

  • Hadoop 2.0

    • HDFS (分布式文件存储)

    • MapReduce (分布式数据处理)

    • YARN (集群资源管理、任务调度)

  • Hadoop 3.0

    Hadoop 3.0架构组件和Hadoop 2.0类似,3.0着重于性能优化。

    • 通用方面:精简内核、类路径隔离、shell脚本重构

    • Hadoop HDFS:EC纠删码、多NameNode支持

    • Hadoop MapReduce:任务本地化优化、 内存参数自动推断

    • Hadoop YARN:Timeline Service V2、队列配置

# Hadoop的特性

Hadoop因为是基于Java语言开发的,因此最理想的运行平台就是Linux系统了。它也支持多种编程语言,如C++,PHP等等。

  • 高可靠型。Hadoop按位存储和处理数据的能力值得人们信赖。
  • 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快,可以处理PB级数据。
  • 高可扩展性。Hadoop的设计目标是可以高效的稳定的运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点。
  • 高容错性。采用冗余数据存储方式,自动保存数据的多个复本,并且能够自动将失败的任务进行重新分配
  • 成本低。Hadoop采用廉价的计算机集群,成本比较低,普通用户也可以使用自己的电脑来搭建Hadoop环境

e8585e4225b64d9fa07764db2dd6f226

Hadoop在大数据、云计算中的位置和关系:云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术”,而Hadoop 则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。


# Hadoop发行版本

7a2948953e7f44869004c5c31170a00c


# Hadoop生态圈

v2-2e8a27e7a71c536357ace130d3539a2f_720w

Apache的其他Hadoop相关项目包括:

  • Ambari™ (opens new window):一种用于供应,管理和监控Apache Hadoop集群的基于Web的工具,其中包括对Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。Ambari还提供了一个用于查看群集运行状况的仪表板,例如热图和可以直观地查看MapReduce,Pig和Hive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能。
  • Avro™ (opens new window):数据序列化系统。
  • Cassandra™ (opens new window):无单点故障的可扩展多主数据库。
  • Chukwa™ (opens new window):管理大型分布式系统的数据收集系统。
  • HBase™ (opens new window):可扩展的分布式数据库,支持大型表格的结构化数据存储。
  • Hive™ (opens new window):提供数据汇总和即席查询的数据仓库基础架构。
  • Mahout™ (opens new window):可扩展的机器学习和数据挖掘库。
  • Pig™ (opens new window):用于并行计算的高级数据流语言和执行框架。
  • Spark™ (opens new window):用于Hadoop数据的快速和通用计算引擎。Spark提供了一个简单而富有表现力的编程模型,它支持广泛的应用程序,包括ETL,机器学习,流处理和图计算。
  • Tez™ (opens new window):一种基于Hadoop YARN的通用数据流编程框架,它提供了一个强大且灵活的引擎,可执行任意DAG任务来处理批处理和交互式用例的数据。Hado™,Pig™和Hadoop生态系统中的其他框架以及其他商业软件(例如ETL工具)正在采用Tez来替代Hadoop™MapReduce作为底层执行引擎。
  • ZooKeeper™ (opens new window):分布式应用程序的高性能协调服务。
上次更新时间: 9/25/2024, 9:17:45 AM