什么是Hadoop

什么是Hadoop

Hadoop是Apache的一个开源框架,用于存储、处理和分析大量的数据。Hadoop是用Java编写的,不是OLAP(在线分析处理)。它用于批量/离线处理。Facebook、Yahoo、Google、Twitter、LinkedIn等都在使用它。此外,通过添加集群中的节点可以扩展它。

Hadoop的模块

  1. HDFS: Hadoop分布式文件系统。Google发表了GFS的论文,HDFS就是基于该论文开发的。它规定文件将被分解为块,并存储在分布式架构上的节点上。
  2. Yarn: Yet Another Resource Negotiator,用于作业调度和集群管理。
  3. Map Reduce: 这是一个框架,帮助Java程序使用键值对对数据进行并行计算。Map任务将输入数据转换为可以使用键值对进行计算的数据集。Map任务的输出由reduce任务消耗,然后reduce器的输出给出所需的结果。
  4. Hadoop Common: 这些Java库用于启动Hadoop,并被其他Hadoop模块使用。

Hadoop的体系结构

Hadoop体系结构包括文件系统、MapReduce引擎和HDFS(Hadoop分布式文件系统)。MapReduce引擎可以是MapReduce/MR1或YARN/MR2。

Hadoop集群由一个主节点和多个从节点组成。主节点包括作业跟踪器、任务跟踪器、名称节点和数据节点,而从节点包括数据节点和任务跟踪器。

什么是Hadoop

Hadoop分布式文件系统

Hadoop分布式文件系统(HDFS)是Hadoop的分布式文件系统。它包含一个主/从架构。这个架构由一个单独的NameNode作为主节点,和多个DataNode作为从节点。

NameNode和DataNode都可以在廉价机器上运行。使用Java语言来开发HDFS。因此,任何支持Java语言的机器都可以轻松运行NameNode和DataNode软件。

NameNode

  • 它是HDFS集群中的单个主服务器。
  • 由于它是一个单节点,可能成为单点故障的原因。
  • 它通过执行打开、重命名和关闭文件等操作来管理文件系统命名空间。
  • 它简化了系统的架构。

DataNode

  • HDFS集群包含多个DataNode。
  • 每个DataNode包含多个数据块。
  • 这些数据块用于存储数据。
  • DataNode负责从文件系统的客户端读取和写入请求。
  • 它根据NameNode的指示执行块的创建、删除和复制。

Job Tracker

  • Job Tracker的作用是接受来自客户端的MapReduce作业,并使用NameNode处理数据。
  • 作为回应,NameNode向Job Tracker提供元数据。

Task Tracker

  • 它作为Job Tracker的从节点工作。
  • 它接收来自Job Tracker的任务和代码,并将该代码应用于文件。这个过程也可以称为Mapper。

MapReduce层

当客户端应用程序向Job Tracker提交MapReduce作业时,MapReduce就开始工作了。作业跟踪器随后向适当的任务跟踪器发送请求。有时,任务跟踪器可能失败或超时。在这种情况下,作业的那一部分会被重新安排。

Hadoop的优势

  • 快速: 在HDFS中,数据分布在集群上,并进行了映射,这有助于更快地检索。即使用于处理数据的工具通常也在同一台服务器上,从而减少了处理时间。它可以在几分钟内处理数TB的数据和数PB的数据。
  • 可扩展: Hadoop集群可以通过添加节点来扩展。
  • 成本效益: Hadoop是开源的,并使用廉价硬件存储数据,因此与传统的关系数据库管理系统相比,成本更低。
  • 容错性: HDFS具有数据在网络上复制的属性,因此如果一个节点宕机或发生其他网络故障,Hadoop将使用其他副本的数据。通常,数据会被复制三次,但复制因子是可配置的。

Hadoop的历史

Hadoop是由Doug Cutting和Mike Cafarella于2002年创立的。它的起源是Google发表的《Google文件系统》论文。

什么是Hadoop

让我们按照以下步骤重点关注Hadoop的历史:-

  • 在2002年,Doug Cutting和Mike Cafarella开始致力于一个名为 Apache Nutch的项目 ,这是一个开源的网络爬虫软件项目。
  • 当他们在Apache Nutch上工作时,他们处理大数据。为了存储这些数据,他们不得不付出很多成本,这成为该项目的一个后果。这个问题成为Hadoop出现的一个重要原因之一。
  • 2003年,Google推出了一个称为GFS(Google文件系统)的文件系统。它是一个专有的分布式文件系统,旨在提供高效的数据访问。
  • 2004年,Google发布了一篇关于Map Reduce的白皮书。这种技术简化了大型集群上的数据处理。
  • 2005年,Doug Cutting和Mike Cafarella引入了一个名为NDFS(Nutch分布式文件系统)的新文件系统。该文件系统还包括Map Reduce。
  • 2006年,Doug Cutting离开了Google,加入了Yahoo。基于Nutch项目,Dough Cutting推出了一个名为Hadoop的新项目,带有一个名为HDFS(Hadoop分布式文件系统)的文件系统。Hadoop的第一个版本0.1.0在这一年发布。
  • Doug Cutting将自己的项目命名为Hadoop,名字取自他儿子的玩具大象。
  • 2007年,Yahoo运行了两个拥有1000台机器的集群。
  • 2008年,Hadoop成为在900台节点集群上快速排序1TB数据的系统,仅需209秒。
  • 2013年,发布了Hadoop 2.2。
  • 2017年,发布了Hadoop 3.0。
年份 事件
2003 Google发布了《Google文件系统(GFS)》的论文。
2004 Google发布了关于Map Reduce的白皮书。
2006 Hadoop被引入。 发布了Hadoop 0.1.0。 雅虎部署了300台机器,并在这一年内达到了600台机器。
2007 雅虎运行了2个包含1000台机器的集群。 Hadoop包含HBase。
2008 YARN JIRA被开放。 Hadoop成为了在900节点集群上以209秒的速度对1TB数据进行排序的最快系统。 雅虎集群每天加载10TB数据。 Cloudera成立,并成为Hadoop的分销商。
2009 雅虎运行了17个包含24,000台机器的集群。 Hadoop变得足够强大,可以对PB级数据进行排序。 MapReduce和HDFS成为了独立的子项目。
2010 Hadoop添加了对Kerberos的支持。 Hadoop运行了4,000个节点,拥有40PB数据。 Apache Hive和Pig发布了。
2011 Apache Zookeeper发布了。 雅虎拥有42,000个Hadoop节点和数百PB的存储。
2012 Apache Hadoop 1.0版本发布。
2013 Apache Hadoop 2.2版本发布。
2014 Apache Hadoop 2.6版本发布。
2015 Apache Hadoop 2.7版本发布。
2017 Apache Hadoop 3.0版本发布。
2018 Apache Hadoop 3.1版本发布。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程