Hadoop - 简介

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


Hadoop 架构

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

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

MapReduce

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


Hadoop 分布式文件系统

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

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

  • Hadoop Common − 这些是其他 Hadoop 模块所需的 Java 库和实用程序。

  • Hadoop YARN − 这是一个用于作业调度和集群资源管理的框架。


Hadoop 是如何工作的?

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

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

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

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

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

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

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

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

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

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


Hadoop 的优势

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

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

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

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