Spark 介绍(基于内存计算的大数据并行计算框架)

 Hadoop与Spark

行业广泛使用Hadoop来分析他们的数据集。原因是Hadoop框架基于一个简单的编程模型(MapReduce),它支持可扩展,灵活,容错和成本有效的计算解决方案。这里,主要关注的是在处理大型数据集时在查询之间的等待时间和运行程序的等待时间方面保持速度。
Spark由Apache Software Foundation引入,用于加速Hadoop计算软件过程。
对于一个普遍的信念,Spark不是Hadoop的修改版本,并不是真的依赖于Hadoop,因为它有自己的集群管理。 Hadoop只是实现Spark的方法之一。
Spark以两种方式使用Hadoop - 一个是存储,另一个是处理。由于Spark具有自己的集群管理计算,因此它仅使用Hadoop进行存储。

Apache Spark简介

Apache Spark是一种快速的集群计算技术,专为快速计算而设计。它基于Hadoop MapReduce,它扩展了MapReduce模型,以有效地将其用于更多类型的计算,包括交互式查询和流处理。 Spark的主要特性是它的内存中集群计算,提高了应用程序的处理速度。
Spark旨在涵盖各种工作负载,如批处理应用程序,迭代算法,交互式查询和流式处理。除了在相应系统中支持所有这些工作负载之外,它还减少了维护单独工具的管理负担。

Apache Spark的演变

Spark是Hadoop在2009年在加州大学伯克利分校的Matei Zaharia的AMPLab开发的子项目之一。它是在2010年根据BSD许可开放。它在2013年捐赠给Apache软件基金会,现在Apache Spark已经成为2014年2月的顶级Apache项目。

Apache Spark的特性

Apache Spark具有以下功能。

速度

Spark有助于在Hadoop集群中运行应用程序,在内存中速度提高100倍,在磁盘上运行时提高10倍。这可以通过减少对磁盘的读/写操作的数量来实现。它将中间处理数据存储在存储器中。

支持多种语言

Spark在Java,Scala或Python中提供了内置的API。因此,您可以使用不同的语言编写应用程序。 Spark提供了80个高级操作员进行交互式查询。

高级分析

Spark不仅支持“Map”和“reduce”。它还支持SQL查询,流数据,机器学习(ML)和图算法。

Spark基于Hadoop

下图显示了如何使用Hadoop组件构建Spark的三种方式。

Spark部署有三种方式,如下所述。
Standalone- Spark独立部署意味着Spark占据HDFS(Hadoop分布式文件系统)顶部的位置,并明确为HDFS分配空间。 这里,Spark和MapReduce将并行运行以覆盖集群上的所有spark作业。
Hadoop Yarn- Hadoop Yarn部署意味着,spark只需运行在Yarn上,无需任何预安装或根访问。 它有助于将Spark集成到Hadoop生态系统或Hadoop堆栈中。 它允许其他组件在堆栈顶部运行。
Spark in MapReduce (SIMR) - MapReduce中的Spark用于在独立部署之外启动spark job。 使用SIMR,用户可以启动Spark并使用其shell而无需任何管理访问。

Spark的组件

下图说明了Spark的不同组件。

Apache Spark Core

Spark Core是spark平台的基础通用执行引擎,所有其他功能都是基于。它在外部存储系统中提供内存计算和引用数据集。
Spark SQL
Spark SQL是Spark Core之上的一个组件,它引入了一个称为SchemaRDD的新数据抽象,它为结构化和半结构化数据提供支持。

Spark Streaming

Spark Streaming利用Spark Core的快速调度功能来执行流式分析。它以小批量获取数据,并对这些小批量的数据执行RDD(弹性分布式数据集)转换。

MLlib (Machine Learning Library)

MLlib是Spark之上的分布式机器学习框架,因为基于分布式内存的Spark架构。根据基准,它是由MLlib开发人员针对交替最小二乘法(ALS)实现完成的。 Spark MLlib是基于Hadoop磁盘的Apache Mahout版本的9倍(在Mahout获得了Spark接口之前)。
GraphX
GraphX是Spark上的一个分布式图形处理框架。它提供了一个用于表达图形计算的API,可以通过使用Pregel抽象API为用户定义的图形建模。它还为此抽象提供了一个优化的运行时。

 

最新文章

  1. PYTHON 链接 Oracle
  2. No assembly found containing an OwinStartupAttribute
  3. [android]如何使LinearLayout布局从右向左水平排列,而不是从左向右排列
  4. WWF3动态修改工作流<第九篇>
  5. C#中实现对Excel特定文本的搜索
  6. 分享一段H264视频和AAC音频的RTP封包代码
  7. Unity3d shader之次表面散射(Subsurface Scattering)
  8. jQuery支持mobile的全屏水平横向翻页效果
  9. 1.Tomcat配置
  10. LeetCode OJ 54. Spiral Matrix
  11. 【Ubuntu】您没有查看“sf_VirtualDisk”的内容所需的权限。
  12. Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级
  13. HTML学习笔记 iframe引用页面按列(针对target打开方式解释) 第九节 (原创)
  14. Java NIO系列教程(三) Channel之Socket通道
  15. 'javac' 不是内部或外部命令,也不是可运行的程序
  16. Storm API,Tutorial,Trident,Windowing BOOKS
  17. IT小小鸟的读后感
  18. 去除win7桌面图标小箭头.bat
  19. Linux-history的用法
  20. win32 signal

热门文章

  1. php分享十四:php接口编写
  2. KMP算法理解
  3. Android: TextView 及其子类通过代码和 XML 设置字体大小的存在差异的分析
  4. csc.exe已退出,代码为-532462766
  5. Xilinx FPGA用户约束文件(转自xilinx ISE 开发指南
  6. [sql]mysql指引(整理中...)-对db的分类
  7. password学4——Java 加密解密之消息摘要算法(MD5 SHA MAC)
  8. [Windows Azure] Adding Sign-On to Your Web Application Using Windows Azure AD
  9. 每日英语:China Destroys Six Tons of Confiscated Ivory
  10. DIOCP-开源项目ECHO测试.