更新时间:2022年07月15日10时11分 来源:传智教育 浏览次数:
随着Hadoop的不断发展,Hadoop生态系统越来越完善,现如今已经发展成一个庞大的生态体系,如图1-3所示。
从图1-3中可以看出,Hadoop生态系统包含了很多子系统,下面介绍一些常见的子系统,具体如下。
图1-3 Hadoop生态圈
1.分布式存储系统(HDFS)
HDFS是Hadoop分布式文件系统的简称,它是Hadoop生态系统中的核心项目之一,是分布式计算中数据存储管理基础。HDFS具有高容错性的数据备份机制,它能检测和应对硬件故障,并在低成本的通用硬件上运行。另外,HDFS具备流式的数据访问特点,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
2.MapReduce分布式计算框架
MapReduce是一种计算模型,用于大规模数据集(大于1TB)的并行运算。“Map”对数据集上的独立元素进行指定的操作,生成键值对形式中间结果;“Reduce”则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这种“分而治之”的思想,极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
3.YARN资源管理平台
YARN资源管理平台(Yet Another Resource Negotiator)是Hadoop2.0中的资源管理器,它可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
4.Sqoop数据迁移工具
Sqoop是一款开源的数据导入导出工具,主要用于在Hadoop与传统的数据库间进行数据的转换,它可以将一个关系数据库(例如,MySQL、Oracle等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系数据库中,使数据迁移变得非常方便。
5.Mahout数据挖掘算法库
Mahout数据挖掘算法库是Apache旗下的一个开源项目,它提供了一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用Apache Hadoop库,Mahout可以有效地扩展到云中。