📅  最后修改于: 2020-12-01 06:38:46             🧑  作者: Mango
Hadoop是用Java编写的Apache开放源代码框架,该框架允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。 Hadoop框架应用程序在提供跨计算机群集的分布式存储和计算的环境中工作。 Hadoop旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。
Hadoop的核心有两个主要层,即-
MapReduce是一种并行编程模型,用于编写由Google设计的分布式应用程序,以便以可靠,容错的方式在商品硬件的大型群集(数千个节点)上高效处理大量数据(多TB数据集)。 MapReduce程序在Hadoop(这是一个Apache开源框架)上运行。
Hadoop分布式文件系统(HDFS)基于Google文件系统(GFS),并提供旨在在商品硬件上运行的分布式文件系统。它与现有的分布式文件系统有很多相似之处。但是,与其他分布式文件系统的区别很明显。它具有很高的容错能力,旨在部署在低成本硬件上。它提供对应用程序数据的高吞吐量访问,并且适用于具有大型数据集的应用程序。
除了上述两个核心组件,Hadoop框架还包括以下两个模块-
Hadoop Common-这些是其他Hadoop模块所需的Java库和实用程序。
Hadoop YARN-这是用于作业调度和群集资源管理的框架。
使用繁重的配置来构建大型服务器以处理大规模处理是非常昂贵的,但是作为替代方案,您可以将许多商用计算机与单CPU捆绑在一起,作为一个单一功能的分布式系统,并且实际上,集群计算机可以读取数据集并提供更高的吞吐量。而且,它比一台高端服务器便宜。因此,这是在跨群集和低成本计算机上运行的Hadoop之后使用的第一个激励因素。
Hadoop在计算机集群上运行代码。此过程包括Hadoop执行的以下核心任务-
数据最初分为目录和文件。文件分为大小统一的128M和64M(最好是128M)的块。
这些文件然后分布在各个群集节点上以进行进一步处理。
HDFS位于本地文件系统的顶部,负责监督处理过程。
复制块以处理硬件故障。
检查代码是否已成功执行。
执行在地图和归约阶段之间进行的排序。
将排序的数据发送到特定计算机。
为每个作业编写调试日志。
Hadoop框架允许用户快速编写和测试分布式系统。它是高效的,并且可以自动在计算机之间分配数据和工作,进而利用CPU内核的底层并行性。
Hadoop不依靠硬件来提供容错和高可用性(FTHA),而是Hadoop库本身已被设计为检测和处理应用程序层的故障。
可以动态地在集群中添加或删除服务器,并且Hadoop可以继续运行而不会中断。
Hadoop的另一个主要优点是,除了开源之外,由于它基于Java,因此在所有平台上都兼容。