1.列举Hadoop生态的各个组件及其功能、以及各个组件之间的相互关系,以图呈现并加以文字描述。
1.HDFS:
HDFS(Hadoop Distributed File System)基于Google发布的GFS论文设计开发,运行在通用硬件上的分布式文件系统。
除具备其它分布式文件系统相同特性外,还有自己的特性:
高容错性:认为硬件总是不可靠的
高吞吐量:为大量数据访问的应用提供高吞吐量
支持大文件存储:支持存储TB-PB级别的数据
2.MapReduce
MapReduce是面向大数据并行处理的计算模型、框架和平台。
它包含以下三层含义:
1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。
2)MapReduce是一个并行计算与运行软件框架(Software Framework)。
3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology
3.HBase
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
适合于存储大表数据(表的规模可以达到数十亿行以及数百万列),并且对大表数据的读、写访问可以达到实时级别。
利用Hadoop HDFS(Hadoop Distributed File System)作为其文件存储系统,提供实时读写的分布式数据库系统。
利用ZooKeeper作为协同服务。
4.Hive
Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。
Hive特性:
灵活方便的ETL(extract/transform/load)。
支持MapReduce,Tez,Spark等多种计算引擎。
可直接访问HDFS文件以及HBase。
易用易编程。
5.spark
批处理可用于ETL(抽取、转换、加载)。
机器学习可用于自动判断淘宝的买家评论是好评还是差评。
交互式分析可用于查询Hive数据仓库。
流处理可用于页面点击流分析,推荐系统,舆情分析等实时业务
6.streaming
实时分析:如实时日志处理(故障分析)、交通流量分析(实时车况)等。
实时统计:如网站的实时访问统计、排序(关键词统计排序)等。
实时推荐:如实时广告定位(广告邮件)、事件营销(猜你喜欢)。
7.Flink
Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。
Flink与Storm类似,属于事件驱动型实时流系统。
8.Flume
提供从固定目录下采集日志信息到目的地(HDFS, HBase, Kafka)能力。
提供实时采集日志信息(taildir)到目的地的能力。
Flume支持级联(多个Flume对接起来),合并数据的能力。
Flume支持按照用户定制采集数据的能力。
2.对比Hadoop与Spark的优缺点。
spark优点:
轻:Spark核心代码有3万行。
Scala语言的简洁和丰富表达力。
巧妙利用了Hadoop和Mesos的基础设施。
快:Spark对小数据集可达到亚秒级的延迟。
对大数据集的迭代机器学习即席查询、图计算等应用,Spark 版本比基于MapReduce、Hive和Pregel的实现快。
内存计算、数据本地性和传输优化、调度优化。
灵:Spark提供了不同层面的灵活性。
Scala语言trait动态混入策略(如可更换的集群调度器、序列化库)。
允许扩展新的数据算子、新的数据源、新的language bindings 。
Spark支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。
巧:巧妙借力现有大数据组件。
Spark借Hadoop之势,与Hadoop无缝结合。
图计算借用Pregel和PowerGraph的API以及PowerGraph的点分割思想
Hadoop的缺点:
表达能力有限
磁盘IO开销大
延迟高
任务之间的衔接涉及IO开销
在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务
3.如何实现Hadoop与Spark的统一部署?
由于Hadoop MapReduce、HBase、Storm和Spark等,都可以运行在资源管理框架YARN之上,因此,可以在YARN之上进行统一部署。这些不同的计算框架统一运行在YARN中,可以带来如下好处:1.计算资源按需伸缩;2.不用负载应用混搭,集群利用率高;3.共享底层存储,避免数据跨集群迁移