Spark-01 spark简介

前言:大牛说由spark入手比较合适

1.spark简介

spark是个计算框架,不存东西。MapReduce是Hadoop里面做计算的,也不存东西,出现比spark早,自从spark活跃起来后mc的很多程序就被重写为spark程序了。spark的api使用起来也比较简单。

  spark起源于2009年加州大学伯克利分校的实验室,20年成为开源项目,2014年就变成了apache的顶级项目。这里用spark2.3.

2,spark与MapReduce(mc)的比较

2-1 优缺点比较

  yarn、Mapreduce、hdfs是hadoop的三大组件,mapreduce计算框架有如下缺点:

  a.可编程性差。有很多模板代码,每写一次都要重复模板代码。

b.缺乏通用的计算引擎。例如:现在设计一个大数据平台,需要它可以离线计算、流处理,机器学习。方案一:用hadoop做离线计算、storm流处理、tensorflow做机器学习;方案二:只用spark,因为spark这三种都有。那么我们很容易选择方案二。当然了,大公司可能都用,但是那是因为历史原因,以前只有mc,现在也暂时换不了全部的spark。

c.计算速度慢。一个问题,是基于磁盘计算快还是内存快?当然是内存,内存比磁盘快几十倍。mc计算过程会存磁盘,spark会优先使用内存进行计算,内存不足的情况下才会选用磁盘。

总之,作为mc的后来者,spark提供了相当的便利性,代码差不多只有mc的1/10(例子是官网的wordCount程序)。

  spark是一个通用的计算引擎。批处理,交互式分析、流处理、机器学习、图计算都是ojbk的。storm比sparksteamnig延迟小,如果延迟性要求大的话用storm是对的。

  2014年的排序比赛如下,我们后续调优时也是考虑下面这些,数据量,计算节点,cpu核心数,内存大小等等。

  

2-2设计思想

spark还是继承了mc的优点的,比如说Hadoop的架构设计思想就是数据不动代码动,计算处理应该移动到数据所在位置。spark继承了这一设计思想,在此之上提供了内存计算、执行计划等优化。

  ps:

  代码不动数据动:无论是做java也好安卓也好都是把数据从库里面抓出来计算,处理结果展示到界面。代码没动,动的是数据。

  数据不动代码动:100个T的数据就不能上面这么做了,抓100个T的数据到内存里面算java就oom了。数量太大,从一个磁盘拷贝过去另一个太费时间,把几个k的代码发送到数据所在那里就快很多了,hadoop和spark都是这种思想。当然了,数据不动代码动复杂度提高了。我那么多个节点分别计算,可是我最后要一起排序,这就是带来复杂度的原因。代码怎么发到数据处,spark和mc都会帮你干。

  与mapreduce不同,Spark的每个job不局限于两个stage(阶段),可以有任意的stage。spark不是将复杂算法分成多个job,而在job中包含多个stages,使得spark可以进行更多优化,例如最小化shuffle数据以及磁盘IO。

2-3 spark工具栈

  sparkCore类似于j2se,上面的四个箱子类似于4个基于j2se做的框架。上面四个框架是用的最多的,但是底层用的都是sparkCore的东西。

  a.sparkCore:spark的主要执行引擎,spark的所有功能都基于这个引擎,它提供了spark的主要功能,比如任务的调度,内存管理、故障恢复和处理存储。

  b.sparkSQL:处理结构化数据,通过SQL和Hive查询语言(HQL)查询数据。

  c.sparkStreaming:流处理,用于处理流数据。

  d.MLib:提供了机器学习算法,如分类、聚类和协同过滤。

  e.GraphX:图计算,可以操作像社交网络中包含的关系图。

原文地址:https://www.cnblogs.com/daysn/p/11365826.html

时间: 2024-08-28 05:11:31

Spark-01 spark简介的相关文章

Spark入门实战系列--1.Spark及其生态圈简介

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL.Spark St

Spark学习笔记—01 Spark集群的安装

一.概述 关于Spark是什么.为什么学习Spark等等,在这就不说了,直接看这个:http://spark.apache.org, 我就直接说一下Spark的一些优势: 1.快 与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上.Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流. 2.易用 Spark支持Java.Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用.而且Sp

Spark修炼之道(进阶篇)——Spark入门到精通:第二节 Hadoop、Spark生成圈简介

本节主要内容 Hadoop生态圈 Spark生态圈 1. Hadoop生态圈 原文地址:http://os.51cto.com/art/201508/487936_all.htm#rd?sukey=a805c0b270074a064cd1c1c9a73c1dcc953928bfe4a56cc94d6f67793fa02b3b983df6df92dc418df5a1083411b53325 下图给出了Hadoop生态圈中的重要产品: 图片来源:http://www.36dsj.com/archiv

01 Spark源码编译

1.1设置机器名:hostname gedit /etc/sysconfig/network Scala http://www.scala-lang.org/ cd /opt mkdir scala cp /home/hserver1/desktop/scala-2.12.2.tgz /opt/scala cd /opt/scala tar -xvf scala-2.12.2.tgz 配置环境变量 gedit /etc/profile export SCALA_HOME=/opt/scala/s

Spark ML Pipeline简介

Spark ML Pipeline基于DataFrame构建了一套High-level API,我们可以使用MLPipeline构建机器学习应用,它能够将一个机器学习应用的多个处理过程组织起来,通过在代码实现的级别管理好每一个处理步骤之间的先后运行关系,极大地简化了开发机器学习应用的难度.        Spark ML Pipeline使用DataFrame作为机器学习输入输出数据集的抽象.DataFrame来自Spark SQL,表示对数据集的一种特殊抽象,它也是Dataset(它是Spar

【转】科普Spark,Spark是什么,如何使用Spark

本博文是转自如下链接,为了方便自己查阅学习和他人交流.感谢原博主的提供! http://www.aboutyun.com/thread-6849-1-1.html http://www.aboutyun.com/thread-6850-1-1.html 科普Spark,Spark核心是什么,如何使用Spark(1) 阅读本文章可以带着下面问题: 1.Spark基于什么算法的分布式计算(很简单) 2.Spark与MapReduce不同在什么地方 3.Spark为什么比Hadoop灵活 4.Spar

Spark记录-Spark性能优化解决方案

Spark性能优化的10大问题及其解决方案 问题1:reduce task数目不合适解决方式:需根据实际情况调节默认配置,调整方式是修改参数spark.default.parallelism.通常,reduce数目设置为core数目的2到3倍.数量太大,造成很多小任务,增加启动任务的开销:数目太少,任务运行缓慢. 问题2:shuffle磁盘IO时间长解决方式:设置spark.local.dir为多个磁盘,并设置磁盘为IO速度快的磁盘,通过增加IO来优化shuffle性能: 问题3:map|red

Spark 以及 spark streaming 核心原理及实践

导语 spark 已经成为广告.报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到大家的青睐,我自己最近半年在接触spark以及spark streaming之后,对spark技术的使用有一些自己的经验积累以及心得体会,在此分享给大家. 本文依次从spark生态,原理,基本概念,spark streaming原理及实践,还有spark调优以及环境搭建等方面进行介绍,希望对大家有所帮助. spark 生态及运行原理 Spark 特点 运行速度快 => Spark拥有DA

大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池

第0章 预备知识0.1 Scala0.1.1 Scala 操作符0.1.2 拉链操作0.2 Spark Core0.2.1 Spark RDD 持久化0.2.2 Spark 共享变量0.3 Spark SQL0.3.1 RDD.DataFrame 与 DataSet0.3.2 DataSet 与 RDD 互操作0.3.3 RDD.DataFrame 与 DataSet 之间的转换0.3.4 用户自定义聚合函数(UDAF)0.3.5 开窗函数0.4 Spark Streaming0.4.1 Dst

01.01教程简介01.02软件的基本工作界面01.03模型设计的一般过程

xue.taoao.com 我的学习记录 01.01教程简介 --- 01.02软件的基本工作界面 - 任务窗口 拖拽到实例中 - 底部显示单位 - 确定当前环境 - 放大缩小 - 鼠标旋转缩放移动 --- 01.03模型设计的一般过程 ----- 原有凸台基础上    插入一个凸台 进入草图环境  选择原有凸台的一个面为基准面   空格  正视于    画一个圆形 - 智能尺寸-标注并且同时设置尺寸 - - 拉伸切 和凸台一样     拉伸切除-选择基准面进入草图   正视于  画圆  给定深