spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

Spark技术从之前和当前的技术路线上看不是为了替代Hadoop,更多的是作为Hadoop生态圈(广义的Hadoop)中的重要一员来存在和发展的。

首先我们知道Hadoop(狭义的Hadoop)有几个重点技术HDFS、MR(MapReduce), YARN。

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

这几个技术分别对应分布式文件系统(负责存储), 分布式计算框架(负责计算), 分布式资源调度框架(负责资源调度)。

我们再来看Spark的技术体系 ,主要分为以下:

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

- Spark Core :提供核心框架和通用API接口等,如RDD等基础数据结构;

- Spark SQL : 提供结构化数据处理的能力, 分布式的类SQL查询引擎;

- Streaming: 提供流式数据处理能力;

- MLLib: 提供分布式机器学习常用的算法包;

- GraphX : 提供图计算能力

从上面Spark的生态系统看,Spark主要是提供各种数据计算能力的(官方称之为全栈计算框架),本身并不过多涉足存储层和调度层(尽管它自身提供了一个调度器),它的设计是兼容流行的存储层和调度层。也就是说, Spark的存储层不仅可以对接Hadoop HDFS,也可以对接Amazon S2; 调度层不仅可以对接Hadoop YARN也可以对接(Apache Mesos)。

因此,我们可以说Spark更多的是补充Hadoop MR单一批处理计算能力, 而不是完全替代Hadoop的。

【关注ABC(A:人工智能;B:BigData; C: CloudComputing)技术的攻城狮,Age:10+】

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

Spark和Hadoop对于大数据的关系?

Hadoop生态

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件。

Apache Hadoop软件库是一个框架,该框架允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。 它旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。 库本身不是设计用来依靠硬件来提供高可用性,而是设计为在应用程序层检测和处理故障,因此可以在计算机集群的顶部提供高可用性服务,而每台计算机都容易出现故障。

1、hadoop1.0时期架构

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

2、hadoop2.0时期架构

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

3、hdfs架构

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

Active Namenode

主 Master(只有一个),管理 HDFS 的名称空间,管理数据块映射信息;配置副本策略;处理客户端读写请求

Secondary NameNode

NameNode 的热备;定期合并 fsimage 和 fsedits,推送给 NameNode;当 Active NameNode 出现故障时,快速切换为新的 Active NameNode。

Datanode

Slave(有多个);存储实际的数据块;执行数据块读 / 写

Client

与 NameNode 交互,获取文件位置信息;与 DataNode 交互,读取或者写入数据;管理 HDFS、访问 HDFS。

4、MapReduce

源自于 Google 的 MapReduce 论文

发表于 2004 年 12 月

Hadoop MapReduce 是 Google MapReduce 克隆版

MapReduce特点

良好的扩展性

高容错性

适合 PB 级以上海量数据的离线处理

5、yarn架构

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

6、hadoop1.0与hadoop2.0比较图

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

7、Hive(基于MR的数据仓库)

由Facebook开源,最初用于海量结构化日志数据统计;ETL(Extraction-Transformation-Loading)工具构建在Hadoop之上的数据仓库;数据计算使用 MapReduce,数据存储使用HDFS

Hive 定义了一种类 SQL 查询语言——HQL

类似SQL,但不完全相同

通常用于进行离线数据处理(采用 MapReduce);可认为是一个 HQL→MR 的语言翻译器

8、Hbase(分布式数据库)

源自 Google 的 Bigtable 论文

发表于 2006 年 11 月

Hbase 是 Google Bigtable 克隆版

Spark

spark大数据技术与应用,大数据Spark技术是否可以替代Hadoop?

Apache Spark是用于大规模数据处理的统一分析引擎。 它提供Java,Scala,Python和R中的高级API,以及支持常规执行图的优化引擎。 它还支持丰富的高级工具集,包括用于SQL和结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图形处理的GraphX和用于增量计算和流处理的结构化流。

速度

运行工作负载的速度提高了100倍。

Apache Spark使用最新的DAG调度程序,查询优化器和物理执行引擎,为批处理数据和流数据提供了高性能。

使用方便

使用Java,Scala,Python,R和SQL快速编写应用程序。

Spark提供了80多个高级操作员,可轻松构建并行应用程序。 您可以从Scala,Python,R和SQL Shell交互使用它。

通用

结合使用SQL,流和复杂的分析。

Spark为包括SQL和DataFrames,用于机器学习的MLlib,GraphX和Spark Streaming在内的一堆库提供支持。 您可以在同一应用程序中无缝组合这些库。

无处不在

Spark可在Hadoop,Apache Mesos,Kubernetes,独立或云中运行。 它可以访问各种数据源。

您可以在EC2,Hadoop YARN,Mesos或Kubernetes上使用其独立集群模式运行Spark。 访问HDFS,Alluxio,Apache Cassandra,Apache HBase,Apache Hive和数百种其他数据源中的数据。

大数据处理为何选择spark?

spark是大数据时代的产物,可以基于hdfs存储的海量数据,分布式的处理各个数据节点上的任务。spark将大型计算任务分解为有向无环图,按照拓扑顺序执行图中的task,配合yarn的调度能充分有效的利用分布式系统的计算资源(主要是cpu和内存)。spark相对于mapreduce的改进是可以基于内存计算(内存不够的再存磁盘),而mapreduce是基于磁盘的计算,因此spark计算速度是相当快的,可以将普通mapreduce的耗时压缩数10倍,我们日常工作中可以早点处理完数据提前下班。

大数据的场景下如果用传统的mysql数据库通过sql查询需要费很大精力去分库分表,维护数据,还得经常面临数据库查询慢的问题,还是得有基于hdfs的数据仓库,使用spark来做数据处理,快使用spark吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论