Hadoop 简明教程

Hadoop - Introduction

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

Hadoop Architecture

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

  1. Processing/Computation layer (MapReduce), and

  2. 存储层(Hadoop 分布式文件系统)。

hadoop architecture

MapReduce

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

Hadoop Distributed File System

Hadoop 分布式文件系统(HDFS)基于 Google 文件系统(GFS),并提供了一个分布式文件系统,该文件系统设计为在商品硬件上运行。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的不同之处是很明显的。它具有极高的容错性,并且设计为部署在低成本硬件上。它提供对应用程序数据的高速访问,并且适用于具有大型数据集的应用程序。

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

  1. Hadoop Common − 这些是由其他 Hadoop 模块需要的 Java 库和实用工具。

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

How Does Hadoop Work?

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

Hadoop 在一组计算机之间运行代码。这个过程包括 Hadoop 执行的以下几个核心任务 -

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

  2. 然后将这些文件分发到不同的集群节点以进行进一步处理。

  3. HDFS 作为本地文件系统的上层,监督处理。

  4. 复制块以处理硬件故障。

  5. 检查代码是否成功执行。

  6. 执行在 map 和 reduce 阶段之间进行的排序。

  7. 将排序好的数据发送到某台计算机。

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

Advantages of Hadoop

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

  2. Hadoop 不依赖于硬件来提供容错和高可用性 (FTHA),而是 Hadoop 库本身被设计为在应用程序层检测和处理故障。

  3. 服务器可以动态地从集群中添加或删除,并且 Hadoop 继续不间断地运行。

  4. Hadoop 的另一个一大优势是,除了是开源的,它还可以兼容所有基于 Java 的平台。