大数据概述

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.共享底层存储,避免数据跨集群迁移

 

上一篇:extern的原理很简单,就是告诉编译器:“你现在编译的文件中,有一个标识符虽然没有在本文件中定义,但是它是在别的文件中定义的全局变量,你要放行!”


下一篇:Zoey.Dapper--Dapper扩展之把SQL语句放到文件中