Hadoop - 简介



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

Hadoop 架构

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

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

MapReduce

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

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。

广告