大数据概述

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

hadoop生态系统的组件hdfs,mapreduce,hive,pig,zookeeper,hbase大家应该都比较熟了,这里简单总结一下其他不太常用的组件的作用。

 

 

Oozie

Oozie是可扩展可伸缩的工作流协调管理器。Oozie协调的作业属于一次性的非循环作业,例如MapReduce, Streaming, Pipes, Pig, Hive, Sqoop等等都是。Oozie将要调度的作业作为一个单一的作业来管理。Oozie的
调度基于时间跟数据可用性。具有数据感知功能,可以协调作业之间的依赖关系.

Flume

Flume是一个类似facebook的scribe的分布式,高可靠,高可用,高效的数据收集器,一般用于聚合众多服务器上面的大量日志到某一个数据中心。

Sqoop

Sqoop用于将关系形数据库(如mysql)或者其它结构化的数据导入到hadoop的生态系统中(HDFS,Hive , HBase),反过来也可以将hadoop的数据导出为对应的结构形式。

Hue

Hue是cdh专门的一套web管理器,它包括3个部分hue ui,hue server,hue db。hue提供所有的cdh组件的shell界面的接口。你可以在hue编写mr,查看修改hdfs的文件,管理hive的元数据,运行Sqoop,编写Oozie工作流等大量工作。

HCatalog

HCatalog提供表格数据类型到pig,hive,mr的输入数据的转换,HCatalog依赖Hive的元数据存储系统。通过HCatalog的接口pig,hive,mr自到识别这些输入数据的架构。

Avro

Avro是一个数据序列化系统。能保存持久化的数据到hdfs,能传输并且反序列化为高级数据结构。类似facebook的thrift,它也是提供多语言客户端支持的。

HttpFS

HttpFS提供REST HTTP API来读写hdfs。

Mahout

Mahout是一个编写基于大数据的机器学习软件,人工智能程序的协助工具。

Snappy

Snappy是压缩跟解压缩工具,它的应用包括将mr的最终输出结果压缩起来,Sqoop导入数据的时候也可以使用这个压缩引擎.

Whirr

Whirr是将hadoop生态系统云化的一个组件。只需要在Whirr的配置文件里指明你需要的hadoop组件,它能够用一个命令将一个hadoop生态系统完整的部署到像Amazon EC2这样的云服务器中,也能够一个命令回收这个hadoop生态系统及其使用的资源。intel的hadoop发行版也可以实现类似快捷部署的功能。

 

 

2.对比Hadoop与Spark的优缺点

mapreduce 读 – 处理 - 写磁盘 -- 读 - 处理 - 写
spark 读 - 处理 - 处理 --(需要的时候)写磁盘 - 写

 

 

 

(1)Spark对标于Hadoop中的计算模块MR,但是速度和效率比MR要快得多;

(2)Spark没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集成才能运作,它只是一个计算分析框架,专门用来对分布式存储的数据进行计算处理,它本身并不能存储数据;

(3)Spark可以使用Hadoop的HDFS或者其他云数据平台进行数据存储,但是一般使用HDFS;

(4)Spark可以使用基于HDFS的HBase数据库,也可以使用HDFS的数据文件,还可以通过jdbc连接使用Mysql数据库数据;Spark可以对数据库数据进行修改删除,而HDFS只能对数据进行追加和全表删除;

(5)Spark数据处理速度秒杀Hadoop中MR;

(6)Spark处理数据的设计模式与MR不一样,Hadoop是从HDFS读取数据,通过MR将中间结果写入HDFS;然后再重新从HDFS读取数据进行MR,再刷写到HDFS,这个过程涉及多次落盘操作,多次磁盘IO,效率并不高;而Spark的设计模式是读取集群中的数据后,在内存中存储和运算,直到全部运算完毕后,再存储到集群中;

(7)Spark是由于Hadoop中MR效率低下而产生的高效率快速计算引擎,批处理速度比MR快近10倍,内存中的数据分析速度比Hadoop快近100倍(源自官网描述);

(8)Spark中RDD一般存放在内存中,如果内存不够存放数据,会同时使用磁盘存储数据;通过RDD之间的血缘连接、数据存入内存中切断血缘关系等机制,可以实现灾难恢复,当数据丢失时可以恢复数据;这一点与Hadoop类似,Hadoop基于磁盘读写,天生数据具备可恢复性;

(9)Spark引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟,对7的补充;

(10)Spark中通过DAG图可以实现良好的容错。

 

 

 

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

Hadoop和Spark的统一部署

一方面,由于Hadoop生态系统中的一些组件所实现的功能,目前还是无法由Spark取代的,比如,Storm可以实现毫秒级响应的流计算,但是,Spark则无法做到毫秒级响应。另一方面,企业中已经有许多现有的应用,都是基于现有的Hadoop组件开发的,完全转移到Spark上需要一定的成本。因此,在许多企业实际应用中,Hadoop和Spark的统一部署是一种比较现实合理的选择。

由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上,因此,可以在YARN之上进行统一部署(如图9-16所示)。这些不同的计算框架统一运行在YARN中,可以带来如下好处:

 

 

posted @ 2022-02-22 10:40  shiqiqio  阅读(161)  评论(0)    收藏  举报