江湖神经

导航

1.大数据概述

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

(1) 由Hadoop生态圈可以看出HDFS是Hadoop的基石。HDFS是一个具备高度容错性的文件系统,同时适合部署在低廉价的硬件上。提供高吞吐量的数据访问,适合有着超大数据集的应用程序。

(2) YARN解决了上一代Hadoop资源利用率低和不能兼容异构的计算框架等多种问题,提供统一的资源管理和调度。

(3) MapReduce是一种编程模型,这种编程模型非常适合进行分布式计算,利用函数式编程思想,将对数据集的过程分为Map和Reduce两个阶段,程序的设计有很高的扩展性。

(4) Tez有向无环图的执行引擎,DAG作业的开源计算框架。

(5) Spark采用基于内存的分布式数据集,对迭代计算有很大优势,用于构建大规模,延迟低的数据分析应用。

(6) HBase采用了Bigtable的数据模型–列族,是面向列族的开源数据库。它擅长大规模数据的随机、实时读写访问。

(7) Zookeeper基于Fast Paxos算法实现,解决分布式系统中一致性的问题。

(8) Hive构建在Hadoop之上的数据仓库,用于解决海量结构化的日志数据统计,可以将结构化的数据文件映射为一张表,提供简单的SQL查询功能。

(9) Pig与Hive类似,也是对大数据集进行分析和评估的工具,不同点在于Pig提供了一种高层的,面向领域的抽象语言Pig Latin,将脚本转换为Mapreduce任务在Hadoop上执行。使用Pig Latin语言表达数据流,目的在于让MapReduce用起来更简单。

(10) Shark可以近似认为仅将物理执行计划从MR作业替换成了Spark作业。

(11) Oozie是基于工作流引擎的服务器,可以在上面运行Hadoop任务。

(12) Ambari是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。

(13) Flume是Cloudera提供的一个高可用,高可靠,分布式的海量日志采集、聚合和传输系统,Flume支持在日志系统中定制各类数据发送方,用于数据收集,同时Flume提供对数据进行简单处理并写到各个数据接收方的能力。

 

(14) Sqoop主要作用在于结构化的数据存储与Hadoop之间进行数据双向交换。Sqoop可以将关系型数据库的数据导入到HDFS、Hive、也可以从HDFS、Hive导出到关系型数据库中。Sqoop利用了Hadoop的优点,整个导入导出都是由MapReduce计算框架实现并行化,非常高效。

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

Hadoop:两步计算,磁盘存储。Spark:多步计算,内存存储。

Spark 是在借鉴了 MapReduce 之上发展而来的,继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷。

(1) MapReduce 中计算结果需要落地,保存到磁盘上,影响整体速度。

Spark支持 DAG 图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。把中间数据放到内存中,迭代运算效率高。

(2) Hadoop将每次处理后的数据都写入到磁盘上,所以其天生就能很有弹性的对系统错误进行处理。

Spark的数据对象存储在分布于数据集群中的叫做弹性分布式数据集

(3) Hadoop会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。

Spark则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。

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

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

 

posted on 2022-02-22 11:16  江湖神经  阅读(49)  评论(0编辑  收藏  举报