Hadoop 介绍


Hadoop 是一个用 java 编写的 Apache 开源框架,它允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。 Hadoop 框架应用程序在提供分布式 storage and 计算 跨计算机集群。 Hadoop 旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。

Hadoop架构


Hadoop 的核心有两个主要层,即:

  • 处理/计算层(MapReduce),以及
  • 存储层(Hadoop 分布式文件系统)。
Hadoop Architecture

MapReduce


MapReduce 是一种并行编程模型,用于编写由 Google 设计的分布式应用程序,以可靠、容错的方式在大型商用硬件集群(数千个节点)上高效处理大量数据(多 TB 数据集) 方式。 MapReduce 程序在 Apache 开源框架 Hadoop 上运行。

Hadoop分布式文件系统


Hadoop 分布式文件系统 (HDFS) 基于 Google 文件系统 (GFS),并提供了一个分布式文件系统,旨在在商用硬件上运行。它与现有的分布式文件系统有很多相似之处。然而,差异 来自其他分布式文件系统的意义重大。它具有高度容错性,旨在部署在低成本硬件上。它提供了高吞吐量访问 应用程序数据,适用于具有大型数据集的应用程序。

除了上述两个核心组件,Hadoop框架还包括以下两个模块:

  • Hadoop 通用 : 这些是其他 Hadoop 所需的 Java 库和实用程序 modules.

  • Hadoop 纱线 : 这是一个作业调度和集群资源的框架 管理。

Hadoop是如何工作的?


构建具有大量配置以处理大规模处理的大型服务器非常昂贵,但作为替代方案,你可以将许多具有单 CPU 的商用计算机捆绑在一起,作为一个单一功能的分布式系统,实际上,集群机器可以读取数据集并行并提供更高的吞吐量。而且,它比一台高端服务器便宜。因此,这是使用 Hadoop 背后的第一个激励因素,它在集群和低成本机器上运行。

Hadoop 跨计算机集群运行代码。这个过程包括Hadoop执行的以下核心任务:

  • 数据最初分为目录和文件。文件被分成大小统一的128M和64M(最好是128M)的块。

  • 然后将这些文件分布在各个集群节点上以供进一步处理。

  • HDFS 位于本地文件系统之上,负责监督处理。

  • 复制块以处理硬件故障。

  • 检查代码是否成功执行。

  • 执行在 map 和 reduce 阶段之间发生的排序。

  • 将排序后的数据发送到某台计算机。

  • 为每个作业编写调试日志。

Hadoop的优势


  • Hadoop 框架允许用户快速编写和测试分布式系统。它是高效的,它会自动在机器之间分配数据和工作,进而利用 CPU 内核的底层并行性。

  • Hadoop 不依赖硬件来提供容错和高可用性 (FTHA),而是 Hadoop 库本身旨在检测和处理应用层的故障。

  • 可以动态地从集群中添加或删除服务器,Hadoop 继续运行而不会中断。

  • Hadoop 的另一大优势是,除了开源之外,它还兼容所有平台,因为它是基于 Java 的。