1.大数据概述

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

(1),HDFS是hadoop的分布式文件系统,用于数据的存储和管理。

(2),mapreduce是分布式计算框架,用于处理和计算大量的数据。

(3), hive是基于hadoop的数据仓库,用于将sql转化为mapreduce任务在hadoop上执行。

(4),hbase是分布式列存数据库,可以让大规模数据更加随机,在实时读写访问的同时,mapreduce可以处理保存在hbase里的数据,使得数据存储和并行计算有了更好的结合。

(5),zookeeper是分布式协作服务,解决了分布式环境下的数据管理问题。

(6),sqoop是数据同步工具,用于传统数据库和hadoop之间数据的传输。

(7),pig是基于hadoop的数据流系统,通常用于离线分析,它定义了一种数据流语言-pig latin,可以将脚本转换为mapreduce任务在hadoop上执行。

(8),mahout是数据挖掘算法库,创建了一些可扩展的机器学习领域经典算法的实现,让开发者们可以更快速更方便地创建应用程序。

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

  (10),yarn是一种新的 Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

 

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

1.1 Hadoop的优点

1、Hadoop具有按位存储和处理数据能力的高可靠性。

2、Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性。

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

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

1.2 Hadoop的缺点

1、Hadoop不适用于低延迟数据访问。

2、Hadoop不能高效存储大量小文件。

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

2.1 Spark的优点

1、速度快

     基于内存运算时比mapreduce快100倍,基于磁盘运算也快10倍以上

2、使用方便,支持多语言

     本地调试很方便

     支持多种语言:Scala、Java、Python、R

     多种运行模式:Local模式、Standalone模式、Spark On Yarn、Spark On Mesoes、Kubernetes

3、丰富的操作算子

     spark有丰富的算子,代码很简洁,几行代码就可以实现mapreduce几个类的工作。

     Value型Transformation算子:map、flatMap、mapPartition、filter、union、distinct、distinct、sample、cache、persist

     Key-Value型Transformation算子:mapValues、reduceByKey、partitionBy

     Action算子:count、foreach、collect、reduce、saveAsTextFile、join、leftOuterJoin、rightOuterJoin

4、支持的场景多

     支持批处理、实时处理 Spark Streaming、机器学习 Mllib、图计算 Graphx

     各种处理可以在同一个应用中无缝隙使用

5、生态完善、社区活跃

     很容易操作hadoop、hbase、cassandra、kafka

     文档很全

2.2 Spark的缺点

1、流式计算不如flink

      2.3版本以前spark的流式计算是将流数据当成小批量的数据(Micro-batch)进行处理,延迟较高,通常大于百毫秒级别;

      2.3版本以后开始支持连续处理模型(类flink), 但功能不如flink全。

2、资源消耗较高

     spark是基于内存计算,因此对资源的要求较高,尤其是内存;当从hdfs上读取很多小文件生成rdd时,rdd元数据会占用较多内存。

 

 

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

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

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

 

posted @ 2022-02-25 11:12  不知道我什么名字  阅读(86)  评论(0编辑  收藏  举报