作业一:1.列举Hadoop生态的各个组件及其功能、以及各个组件之间的相互关系,以图呈现并加以文字描述。 2.对比Hadoop与Spark的优缺点。 3.如何实现Hadoop与Spark的统一部署?

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

答:Hadoop生态图如下:

  • Hadoop生态图中包含很多组件,包含HDFS【分布式存储系统】、YARN【资源调度】、MapReduce【任务计算】等。
  • HDFS【分布式存储系统】,是Hadoop体系中数据存储管理的基础,提供一次写入多次读取的机制,数据以块的形式同时分布存储在不同的物理机器上。
  • MapReduce【分布式计算框架】,MapReduce是一种分布式计算模型,将计算抽象为Map和Reduce两部分,其中Map对数据集上的独立元素进行操作,生成key-value中间结果;Reduce对中间结果中相同key的所有value进行规约,得到最终结果。
  • Hive【数据仓库系统】,Hive定义了一种查询语言HiveQL,让Hadoop集群拥有关系型数据库的sql体验,本质是Hadoop的一个插件,如进行加减乘除等计算任务,则将sql语句转化成MapReduce任务在Hadoop上执行。
  • Hbase【分布式列式数据库】,让HDFS拥有海量存储功能,并在大量数据的情况下实现秒级别查询,本质建立在HDFS上;数据的表现形式以表格显示,其本质在底层的物理结构key-value,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
  • Zookeeper【分布式协作服务】,从定义上讲,Zookeeper是一个监控以及通知分布式系统。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于Hadoop管理操作。
  • Spark【分布式计算框架】,是一种运用内存计算的框架,不用安装Hadoop,也可以独立使用,相比于MapReduce,Spark提供了一个更快、更通用的数据处理平台。
  • Sqoop【数据同步工具】,数据库EIT工具,用于关系数据库、数据仓库和Hadoop之间转移数据。
  • Flume【日志采集工具】,是一个扩展性高、适应性强的海量日志收集系统。也可用于收集其他类型数据。
  • YARN【分布式资源管理器】,是一个通用的运行时框架,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。

 

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

 答:

  • Hadoop-MapReduce,基于磁盘的大数据批量处理系统。
    • 存在的缺点有:
      • 表达能力有限。
      • 磁盘输入输出开销大。
      • 延迟性高。【任务与任务之间的衔接涉及输入输出开销,在前一个任务执行完成之前,其他任务无法开始,在复杂、多阶段的计算任务中难以实现】
    • 存在的优点有:
      • 降低了分布式应用开发的复杂性。【MapReduce里会将复杂的业务逻辑分解成Map和Reduce两部分】
  • Spark,基于RDD【弹性分布式数据集】数据处理,显式的将RDD数据存储到磁盘和内存中。Spark是在借鉴MapReduce之上发展而来的,继承其分布式并行计算的优点并改进MapReduce明显的缺陷。
    • 存在的优点有:
      • 磁盘/内存运算速度快。
      • 易用性强。【Spark支持Java、Python、Scala和R的API,还支持超过80种算法】
      • 通用性。【Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)】
      • 兼容性。【Spark可以与其他开源产品 进行融合】
  • 相对于Hadoop-MapReduceSpark具有以下优点:
    • Spark计算模式属于MapReduce,但不完全局限于Map和Reduce操作,并且Spark还提供了多种数据集操作类型,编程模型比Hadoop-MapReduce更灵活。
    • Spark提供了内存计算,可以将中间结果放到内存中,对于迭代运算效率更高。
    • Spark基于DAG的任务调度执行机制,要优于Hadoop-MapReduce的迭代执行机制。

 

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

答: 由于Hadoop生态系统种的一些组件所实现的功能,目前还是无法由Spark直接取代的,现有的Hadoop组件开发的应用,完全转移到Spark上需要一定的成本,不同的计算框架同意运行在YARN中,可以带来以下好处:计算资源按需伸缩不用负载应用混搭,集群利用率高共享底层存储,避免数据跨集群迁移

 

posted @ 2022-02-24 22:29  *啥也不是*  阅读(403)  评论(0编辑  收藏  举报