📜  什么是Hadoop:体系结构,模块,优势,历史

📅  最后修改于: 2020-12-03 01:39:12             🧑  作者: Mango

什么是Hadoop

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

Hadoop的模块

  • HDFS: Hadoop分布式文件系统。 Google发表了论文GFS,并在此基础上开发了HDFS。它指出文件将被分解为多个块,并存储在分布式体系结构的节点中。
  • 纱线:另一个资源协商器用于作业调度和管理集群。
  • Map Reduce:这是一个框架,可以帮助Java程序使用键值对对数据进行并行计算。 Map任务将输入数据转换为可在键值对中计算的数据集。 Map任务的输出被reduce任务消耗,然后out of reducer提供所需的结果。
  • Hadoop Common:这些Java库用于启动Hadoop,并由其他Hadoop模块使用。

Hadoop架构

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

Hadoop集群由一个主节点和多个从节点组成。主节点包括Job Tracker,Task Tracker,NameNode和DataNode,而从节点包括DataNode和TaskTracker。

Hadoop分布式文件系统

Hadoop分布式文件系统(HDFS)是Hadoop的分布式文件系统。它包含一个主/从体系结构。此体系结构由一个NameNode充当主角色,多个DataNode充当从角色。

NameNode和DataNode都具有足够的能力在商用机器上运行。 Java语言用于开发HDFS。因此,任何支持Java语言的机器都可以轻松运行NameNode和DataNode软件。

名称节点

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

数据节点

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

工作追踪器

  • Job Tracker的作用是从客户端接受MapReduce作业,并使用NameNode处理数据。
  • 作为响应,NameNode将元数据提供给Job Tracker。

任务追踪器

  • 它充当Job Tracker的从节点。
  • 它从Job Tracker接收任务和代码,并将该代码应用于文件。此过程也可以称为映射器。

MapReduce图层

当客户端应用程序将MapReduce作业提交给Job Tracker时,MapReduce便存在了。作为响应,作业跟踪程序将请求发送到适当的任务跟踪程序。有时,TaskTracker失败或超时。在这种情况下,将重新安排该部分工作。

Hadoop的优势

  • 快速:在HDFS中,数据分布在群集上并被映射,这有助于更快地进行检索。即使是用于处理数据的工具也经常位于同一服务器上,从而减少了处理时间。它能够在数分钟内处理数TB的数据,并在数小时内处理Peta的数据。
  • 可扩展:只需在集群中添加节点即可扩展Hadoop集群。
  • 具有成本效益: Hadoop是开放源代码,并使用商品硬件存储数据,因此与传统的关系数据库管理系统相比,它确实具有成本效益。
  • 容错能力强: HDFS具有可以通过网络复制数据的属性,因此,如果一个节点出现故障或其他网络出现故障,则Hadoop将获取另一份数据副本并使用它。通常,数据被复制三次,但是复制因子是可配置的。

Hadoop的历史

Hadoop由Doug Cutting和Mike Cafarella于2002年创立。其起源是Google出版的Google File System论文。

让我们通过以下步骤关注Hadoop的历史:-

  • 在2002年,Doug Cutting和Mike Cafarella开始致力于Apache Nutch这个项目。它是一个开源的Web爬虫软件项目。
  • 在研究Apache Nutch时,他们正在处理大数据。为了存储该数据,他们必须花费大量成本,这成为该项目的结果。这个问题成为Hadoop出现的重要原因之一。
  • Google在2003年推出了一种称为GFS(Google文件系统)的文件系统。它是专有的分布式文件系统,旨在提供对数据的有效访问。
  • 2004年,Google发布了有关Map Reduce的白皮书。此技术简化了大型群集上的数据处理。
  • 在2005年,Doug Cutting和Mike Cafarella引入了一种新的文件系统,称为NDFS(Nutch分布式文件系统)。该文件系统还包括Map reduce。
  • 2006年,道格·切特(Doug Cutting)退出了Google,并加入了雅虎。在Nutch项目的基础上,Dough Cutting引入了一个新项目Hadoop,该项目带有一个称为HDFS(Hadoop分布式文件系统)的文件系统。 Hadoop于今年发布的第一个版本0.1.0。
  • 道格·切特(Doug Cutting)以儿子的玩具大象命名为Hadoop项目。
  • 在2007年,雅虎运行着两个由1000台计算机组成的集群。
  • 在2008年,Hadoop成为最快的系统,可在209秒内对900节点集群上的1 TB数据进行排序。
  • 2013年,Hadoop 2.2发布了。
  • 在2017年,Hadoop 3.0发布了。
Year Event
2003 Google released the paper, Google File System (GFS).
2004 Google released a white paper on Map Reduce.
2006
  • Hadoop introduced.
  • Hadoop 0.1.0 released.
  • Yahoo deploys 300 machines and within this year reaches 600 machines.
2007
  • Yahoo runs 2 clusters of 1000 machines.
  • Hadoop includes HBase.
2008
  • YARN JIRA opened
  • Hadoop becomes the fastest system to sort 1 terabyte of data on a 900 node cluster within 209 seconds.
  • Yahoo clusters loaded with 10 terabytes per day.
  • Cloudera was founded as a Hadoop distributor.
2009
  • Yahoo runs 17 clusters of 24,000 machines.
  • Hadoop becomes capable enough to sort a petabyte.
  • MapReduce and HDFS become separate subproject.
2010
  • Hadoop added the support for Kerberos.
  • Hadoop operates 4,000 nodes with 40 petabytes.
  • Apache Hive and Pig released.
2011
  • Apache Zookeeper released.
  • Yahoo has 42,000 Hadoop nodes and hundreds of petabytes of storage.
2012 Apache Hadoop 1.0 version released.
2013 Apache Hadoop 2.2 version released.
2014 Apache Hadoop 2.6 version released.
2015 Apache Hadoop 2.7 version released.
2017 Apache Hadoop 3.0 version released.
2018 Apache Hadoop 3.1 version released.