大数据概述

一、列举Hadoop生态的各个组件及其功能、以及各个组件之间的相互关系,以图呈现并加以文字描述

 

 

 

 

1.HDFS(分布式文件系统)

HDFS是hadoop体系中数据存储管理的基础。它是 Hadoop 技术体系中的核心基石,负责分布式存储数据,你可以把它理解为一个分布式的文件系统。此文件系统的主要特征是数据分散存储,一个文件存储在 HDFS 上时会被分成若干个数据块,每个数据块分别存储在不同的服务器上。

2.MapReduce(分布式计算框架)

MapReduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。MapReduce的强大在于分布式计算,也就是将计算任务分布在多个服务器上,因此服务器数量越多,计算速度就越快。

3.Hbase(分布式列存数据库)

Hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库 。

Hbase继承了列存储的特性,它非常适合需对数据进行随机读、写操作、比如每秒对PB级数据进行几千次读、写访问是非常简单的操作。

其次,Hbase构建在HDFS之上,其内部管理的文件全部存储在HDFS中。这使它具有高度容错性和可扩展性,并支持Hadoop mapreduce程序设计模型。 如果你的应用是交易历史查询系统、查询场景简单,检索条件较少、每天有千万行数据更新、那么Hbase将是一个很好的选择。其实,行存储和列存储只是不同的维度而已,没有天生的优劣,而大数据时代大部分的查询模式决定了列式存储优于行式存储。

4.Hive(基于Hadood的数据仓库)

Hive 定义了一种类似 SQL 的查询语言(HQL),它可以将 SQL 转化为 MapReduce 任务在 Hadoop 上执行。

5.YARN(分布式资源管理器)

YARN中,支持CPU和内存两种资源管理,资源管理由ResourceManager(RM)、ApplicationMaster(AM)和NodeManager(NM)共同完成。其中,RM负责对各个NM上的资源进行统一管理和调度。

而NodeManager则负责资源的供给和隔离。当用户提交一个应用程序时,会创建一个用以跟踪和管理这个程序的AM,它负责向RM申请资源,并要求NM启动指定资源的任务。这就是YARN的基本运行机制。

6.Spark(内存计算)

Spark是一种基于内存的分布式并行计算框架。Spark 提供了内存中的分布式计算能力,相比传统的 MapReduce 大数据分析效率更高、运行速度更快。总结一句话:以内存换效率。

7.Sqoop(数据同步工具)

Sqoop是SQL-to-Hadoop的缩写。它主要用于传统数据库和Hadoop之间传输数据。数据的导入和导出本质上是 MapreDuce 程序,充分利用了 MR 的并行化和容错性。

8.Zookeeper(分布式协作服务)

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

Hadoop的很多组件依赖于Zooleeper,它运行在计算机集群上。

9.Flume(日志收集工具)

Flume 是将数据从产生、传输、处理并最终写入目标路径的过程抽象为数据流,在具体的数据流中,数据源支持在 Flume 中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume 数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume 还具有能够将日志写往各种数据目标(文件、HDFS、网络)的能力。在 Hadoop 平台,我们主要使用的是通过 Flume 将数据从源服务器写入 Hadoop 的 HDFS 上。

10.Mahout(数据挖掘算法库)

mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。mahout现在已经包含了聚类,分类,推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法

11.Pig

Pig是一种数据流语言和运行环境,常用于检索和分析数据量较大的数据集。

12.Ambari(大数据运维工具)

Ambari 是一个大数据基础运维平台,它实现了 Hadoop 生态圈各种组件的自动化部署、服务管理和监控告警,Ambari 通过 puppet 实现自动化安装和配置,通过 Ganglia 收集监控度量指标,用 Nagios 实现故障报警。

 

 二、对比Hadoop与Spark的优缺点。

1.Hadoop的优点

a.Hadoop具有安位存储和处理数据能力的高可靠性。

b.Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。

c.Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性。

2.Hadoop的缺点

a.Hadoop不适用于低延迟数据访问。

b.Hadoop不能高效存储大量小文件。

c.Hadoop不支持多用户写入并任意修改文件。

3.Spark的优点

a.与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,而基于磁盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效地处理数据流。

b.Spark支持Java,Python和Scala的API,还支持超过80钟高级算法,使用户可以快速构建不同应用。

c.Spark提供了统一的解决方案。Spark可以用于批处理,交互式查询,实时流处理,机器学习和图计算。

4.Spark的缺点

a.Spark在稳定性方面不如Hadoop,由于代码质量问题,Spark长时间运行会经常出错。

b.不能处理大数据,单独机器处理数据过大,或由于数据出现问题导致中间结构超过RAM的大小时,常常出现RAM空间不足或无法得知结果。

c.不能支持复杂的SQL统计,目前Spark支持的SQL语法完整过程还不能应用在复杂数据分析中。在可管理性方面,SparkYARN的结合不完善,这就为使用过程中容易出现各种难题。

三、如何实现Hadoop与Spark的统一部署?

 Hadoop生态系统中一些组件实现的功能,是目前无法由Spark取代的。由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上,因此,可以在YARN之上进行统一部署

posted @ 2022-02-27 23:12  yikw  阅读(177)  评论(0编辑  收藏  举报