1.大数据概述

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

HDFS(hadoop分布式文件系统)

HDFS是hadoop中数据存储管理的基础,现在已经成为大数据的存储标准。它适合存储一次写入,多次读出的数据。同事它也是一个高容错的系统,能检测和应对相应的硬件故障。HDFS由DataNode和NameNode组成。前者负责存储数据,后者负责管理数据,NameNode记录着每个DataNode存储的数据内容,并暴露给上层的系统调用,同时也会根据上层的指令对DataNode进行增加、删除及负责。
image

MapReduce(分布式计算框架)

MapReduce是一种计算模型,用于处理大数据量的计算。它将计算任务(Map task)分配给数据就近的处理节点(Rdece task),进行完运算后再合并导入结果,这样处理可以较好的去进行大量数据的调取,但也有不足的地方,就是是延时比较高,在处理实时流数据的情况下不适用。
image

Hive(基于hadoop的数据仓库)

Hive定义了一种类似sql的查询语言(hql),本质就是将hadoop包装成为使用起来简单的软件,用户可以使用sql语句进行常规查询。

Yarn(资源管理框架)

Yarn是负责集群资源跳读管理的组件。它的目标就是实现“一个集群多个框架”,即在一个集群之上部署一个统一的资源调度的管理框架Yarn。在Yarn上可以部署其他各类型的计算框架,例如Storm、OpenMPI等。

Hbase(分布式列存数据库)

Hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库,主要用来存储非结构化和半结构化的松散数据。和传统关系类型数据库不同,Hbase采用了bigtable的数据模型及增强了稀疏排序映射表(key/value)。

Zookeeper(分布式协作服务)

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

Sqoop(数据同步工具)

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

pig(基于hadoop的数据流系统)

Pig定义了一种数据流语言-pig latin,它将脚本转换为mapreduce任务在hadoop上执行。
通常用于离线分析。

flume(日志收集工具)

cloudera开源的日志收集系统,具有分布式,高可靠,高容错,易于定制和扩展的特点。他将数据从产生,传输,处理并写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在flume中定制数据发送方,从而支持收集各种不同协议数据。

image

2.对比Hadoop与Spark的优缺点。

首先能与Spark比较的是Hadoop中的MapReduce,它们都是计算模式。
MapReduce的处理工程:读 – 处理 - 写磁盘 -- 读 - 处理 - 写
Spark的处理过程: 读 - 处理 - 处理 --(需要的时候)写磁盘 - 写
image
Spark是在借鉴了 MapReduce 后发展而来的,它继承了MapReduce分布式并行计算的各个优点并且改进了 MapReduce里 明显的缺陷。
Spark速递更快,它把运算的中间数据存放在内存,迭代计算效率更高;而MapReduce的中间结果需要保存到磁盘, 这样就会有磁盘io操作,影响其性能。
Spark容错性更高,它通过弹性分布式数据集RDD来实现高效容错,RDD是一组分布式的存储在节点内存中的只读性质的数据集,这些集合是弹性的,某一部分丢失或者出错,可以通过整个数据集的计算流程的血缘关系来实现重建,而MapReduce的容错就只能重新计算,相对来说成本较高。
总结:Spark是MapReduce的替代方案,并且兼容HDFS、Hive,且可以融入Hadoop的生态系统,以弥补MapReduce的不足。

3.如何实现Hadoop与Spark的统一部署?

由于Spark无法Hadoop生态中一些组件的功能,所以它还无法代替Hadoop。两者统一部署可以在Yarn上进行部署,并且有HDFS进行文件管理。
image

posted @ 2022-02-23 11:19  湘伦籽  阅读(76)  评论(0编辑  收藏  举报