Hadoop - 简介

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

Hadoop架构

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

  • 处理/计算层(MapReduce)和

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

Hadoop架构

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位于本地文件系统之上,负责监督处理.

  • 块是复制以处理硬件故障.

  • 检查代码是否已成功执行.

  • 执行地图和减少阶段之间的排序.

  • 将已排序的数据发送到某台计算机.

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

Hadoop的优点

  • Hadoop框架允许用户快速编写和测试分布式系统.它是高效的,它自动分配数据并在机器上工作,反过来利用CPU核心的底层并行性.

  • Hadoop不依赖在硬件上提供容错和高可用性(FTHA),而Hadoop库本身就是为了检测和处理应用层的故障而设计的.

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

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