📜  Hadoop – 介绍

📅  最后修改于: 2021-10-27 06:49:33             🧑  作者: Mango

在这个世界上,强者的定义已经发生了变化。有权访问数据的人是有权有势的人。这是因为数据正在以惊人的速度增长。假设我们生活在 100% 的数据世界中。那么 90% 的数据是在过去的 2 到 4 年中产生的。这是因为现在孩子一出生,在她妈妈之前,她首先面对相机的闪光灯。所有这些图片和视频都不过是数据。同样,还有电子邮件数据、各种智能手机应用程序、统计数据等。所有这些数据都具有影响各种事件和趋势的巨大力量。这些数据不仅被公司用来影响他们的消费者,也被政治家用来影响选举。这种庞大的数据被称为大数据。在这样一个世界中,数据以如此指数的速度产生,需要对其进行维护、分析和处理。这就是 Hadoop 潜入的地方。

Hadoop 是在 Apache 许可下分发的开源工具集框架。它用于为集群系统下运行的各种大数据应用程序管理数据、存储数据和处理数据。前些年大数据被定义为“ 3Vs ”,现在大数据出现了“5Vs ”,也被称为大数据的特征。

  1. 数量:随着对技术的依赖日益增加,数据正在大量产生。常见的例子是各种社交网站、传感器、扫描仪、航空公司和其他组织产生的数据。
  2. 速度:每秒产生大量数据。预计到2020年底,每个人每秒将产生3mb的数据。如此大量的数据正在以极快的速度生成。
  3. 多样性:通过不同方式产生的数据分为三种类型:
    • 结构化数据:是以行和列的形式存储的关系数据。
    • 非结构化数据:文本、图片、视频等是无法以行和列的形式存储的非结构化数据的示例。
    • 半结构化数据:日志文件是此类数据的示例。
  4. 真实性:术语真实性是为导致产生可疑或不确定信息的不一致或不完整数据而创造的。数据不一致通常是由于数据的数量或数量而产生的,例如,大量数据可能会造成混乱,而较少的数据量可能会传达一半或不完整的信息。
  5. 价值:在考虑了 4 个 V 之后,还有一个 V 代表价值!。大量没有价值的数据对公司没有好处,除非你把它变成有用的东西。数据本身没有任何用处或重要性,但需要将其转换为有价值的东西以提取信息。因此,您可以声明该值!是所有 5V 中最重要的 V

Hadoop 的演变: Hadoop 是由 Doug Cutting 和 Michael Cafarella 于 2005 年设计的。Hadoop 的设计灵感来自于 Google。 Hadoop 通过一个称为 Hadoop 分布式文件系统 (HDFS) 的系统存储海量数据,并使用 Map Reduce 技术处理这些数据。 HDFS 和 Map Reduce 的设计灵感来自 Google 文件系统 (GFS) 和 Map Reduce。 2000 年,谷歌突然超越了所有现有的搜索引擎,成为最受欢迎和最赚钱的搜索引擎。 Google 的成功归功于其独特的 Google 文件系统和 Map Reduce。直到那个时候,除了谷歌,没有人知道这一点。所以,在 2003 年 Google 发布了一些关于 GFS 的论文。但是仅仅了解谷歌的整体工作是不够的。于是在 2004 年,谷歌再次发布了剩余的论文。 2005 年,Doug Cutting 和 Michael Cafarella 两位爱好者研究了这些论文并设计了所谓的 Hadoop。Doug 的儿子有一只玩具大象,名叫 Hadoop,因此 Doug 和 Michael 给他们的新作品命名为“Hadoop”,因此符号“玩具大象”。这就是 Hadoop 的演变方式。因此,HDFS 和 Map Reduced 的设计虽然由 Doug Cutting 和 Michael Cafarella 创建,但最初的灵感来自于 Google。更多关于Hadoop演进的细节可以参考Hadoop |历史或演变

传统方法:假设我们要处理一个数据。在传统方法中,我们曾经将数据存储在本地机器上。然后处理这些数据。现在随着数据开始增加,本地机器或计算机不足以存储这个庞大的数据集。因此,数据随后开始存储在远程服务器上。现在假设我们需要处理这些数据。因此,在传统方法中,必须从服务器获取这些数据,然后对其进行处理。假设此数据为 500 GB。现在,实际上获取这些数据是非常复杂和昂贵的。这种方法也称为企业方法。
在新的 Hadoop 方法中,我们不是在本地机器上获取数据,而是向数据发送查询。显然,处理数据的查询不会像数据本身那样庞大。此外,在服务器端,查询被分成几个部分。所有这些部分同时处理数据。这称为并行执行,并且由于 Map Reduce 而成为可能。因此,现在不仅不需要获取数据,而且处理时间也更少。然后将查询结果发送给用户。因此,Hadoop 使数据存储、处理和分析的方式比其传统方法更容易。

Hadoop 的组件: Hadoop 具有三个组件:

  1. HDFS: Hadoop 分布式文件系统是一个专用文件系统,用于存储大数据与商品硬件集群或具有流访问模式的更便宜的硬件。它使数据可以存储在集群中的多个节点上,从而保证了数据的安全性和容错性。
  2. Map Reduce:一旦存储在 HDFS 中的数据也需要进行处理。现在假设发送一个查询来处理 HDFS 中的数据集。现在,Hadoop 确定这些数据的存储位置,这称为映射。现在查询被分成多个部分,所有这些多个部分的结果被组合在一起,并将整体结果发送回用户。这称为减少过程。因此,HDFS 用于存储数据,Map Reduce 用于处理数据。
  3. YARN: YARN 代表Yet Another Resource Negotiator 。它是 Hadoop 的专用操作系统,用于管理集群的资源,也可作为 Hadoop 中作业调度的框架。各种类型的调度有先到先服务、公平份额调度和容量调度等。先来先服务调度在 YARN 中默认设置。

Hadoop 的组件如何使其成为大数据的解决方案?

  1. Hadoop 分布式文件系统:在我们本地的 PC 中,默认情况下硬盘中的块大小为4KB 。当我们安装 Hadoop 时,HDFS 默认将块大小更改为64 MB 。因为它用于存储大量数据。我们还可以将块大小更改为128 MB 。现在 HDFS 与数据节点和名称节点一起工作。虽然 Name Node 是一个主服务,它保存元数据,关于哪些商品硬件,数据驻留,Data Node 存储实际数据。现在,由于块大小为 64 MB,因此减少了存储元数据所需的存储空间,从而使 HDFS 更好。此外,Hadoop 将每个数据集的三个副本存储在三个不同的位置。这确保了 Hadoop 不容易出现单点故障。
  2. MapReduce:最简单的方式,可以理解为MapReduce将一个查询分成多个部分,现在每个部分都连贯地处理数据。这种并行执行有助于更快地执行查询,并使 Hadoop 成为处理大数据的合适和最佳选择。
  3. YARN:正如我们所知,Yet Another Resource Negotiator 就像 Hadoop 的操作系统一样工作,并且操作系统是资源管理器,因此 YARN 管理 Hadoop 的资源,以便 Hadoop 以更好的方式为大数据提供服务。

Hadoop 版本:到目前为止,Hadoop 有以下三个版本。

  • Hadoop 1:这是 Hadoop 的第一个也是最基本的版本。它包括 Hadoop Common、Hadoop 分布式文件系统 (HDFS) 和 Map Reduce。

  • Hadoop 2: Hadoop 1 和 Hadoop 2 之间的唯一区别是 Hadoop 2 额外包含 YARN(Yet Another Resource Negotiator)。 YARN 通过其两个守护进程(即作业跟踪和进度监控)帮助进行资源管理和任务调度。

  • Hadoop 3:这是 Hadoop 的最新版本。除了前两个版本的优点外,Hadoop 3 还有一个最重要的优点。它通过拥有多个名称节点解决了单点故障的问题。擦除编码、使用 GPU 硬件和 Docker 等各种其他优势使其优于早期版本的 Hadoop。
    • 经济上可行:与传统方法相比,存储和处理数据的成本更低。由于用于存储数据的实际机器只是商品硬件。
    • 易于使用: Apache Hadoop 提供的项目或工具集易于使用,以分析复杂的数据集。
    • 开源:由于 Hadoop 是在 Apache License 下作为开源软件分发的,所以不需要付费,只需下载并使用它。
    • 容错性:由于Hadoop存储了三份数据,因此即使因为任何商品硬件故障而丢失一份数据,数据也是安全的。而且,由于Hadoop版本3有多个名称节点,所以甚至Hadoop的单点故障也被消除了。
    • 可扩展性: Hadoop 本质上是高度可扩展的。如果需要扩容或缩容集群,只需要改变集群中的商品硬件数量即可。
    • 分布式处理: HDFS 和 Map Reduce 确保数据的分布式存储和处理。
    • 数据的局部性:这是 Hadoop 最诱人和最有前途的特性之一。在 Hadoop 中,为了处理对数据集的查询,我们将查询发送到服务器并从那里获取最终结果,而不是将数据传送到本地计算机。这称为数据局部性。