📅  最后修改于: 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. |