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

Hadoop生态系统组件有HDFS、MapReduce、ZoopKer、HBase、Hive、Pig、Mahout、Sqoop、Flume、Spark、YARN等功能组件。

1、HDFS是一个分布式文件系统,为海量的数据提供了存储。HDFS有着高容错性的特点,并且设计用来部署在低廉价的的硬件上,提供了高吞吐量来访问应用程序的数据。因此对于超大数据集的应用程序而言,选择HDFS作为底层数据存储是较好的选择。

2、MapReduce是一种编程模型,为海量的数据提供了计算。它主要用于大规模数据集的并行运算。

3、 Zookeeper是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。

4.、HBase是面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。它提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

5、Hive是—个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。

6、Pig是一种数据流语言和运行环境,它简化了Hadoop常见的工作任务。适合于使用Hadoop和MapReduce平台来查询大型半结构化数据集。

7、Mahout提供一些可扩展的机器学习领域经典算法的实现。

8、Sqoop主要用于在Hadoop和传统数据库进行数据互导。

9、Flume能够将不同数据源的海量日志数据进行高效收集、汇聚、移动,最后存储到一个中心化数据存储系统中,它适应各种方式日志收集并支持failover和负载均衡。

10、Spark提供了一个更快、更通用的数据处理平台,为海量数据处理的内存计算引擎。

11、YARN 是负责集群资源调度管理的组件。

hadoop生态圈包括哪些常用的组件 hadoop生态组件及功能_数据

 

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

1、Spark 是把中间数据放到内存中,迭代运算效率高。而MapReduce 中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度。而

2、Spark 容错性高。Spark 引进了弹性分布式数据集 RDD 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即允许基于数据衍生过程)对它们进行重建。另外在RDD 计算时可以通过 CheckPoint 来实现容错。

3、Spark 更加通用。MapReduce只提供了 Map 和 Reduce 两种操作,而Spark 提供的数据集操作类型有很多,大致分为:Transformations 和 Actions 两大类。

4、Spark支持的运算平台,支持的开发语言更多。Spark 支持的4种开发语言:scala,java,python,R

5、Hadoop适合处理静态数据,对于迭代式流式数据的处理能力差;Spark通过在内存中缓存处理的数据,提高了处理流式数据和迭代式数据的性能;

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

总的来说,Spark与MapReduce是一种相互共生的关系。Hadoop提供了Spark所没有的功能特性,比如分布式文件系统,而Spark 为需要它的那些数据集提供了实时内存处理。

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

由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上,因此,可以在YARN之上进行统一部署。