spark基于RDD成功构建起大数据处理的一体化解决方案,将MappReduce、Streaming、SQL、Machine Learning、Graph Processing等
大数据计算模型统一到一个技术堆栈中;Spark的Spark SQL、MLlib、GraphX、Spark Streaming等四大子框架之间可以在内存中无缝集成
并可以相互操作彼此的数据
    spark+hadoop,hadoop负责数据存储和资源管理,spark负责一体化、多元化的不同规模的数据计算,而计算是大数据的精髓所在
 
RDD分布式函数式编程
    RDD(弹性分布式数据集),RDD被创建后,提供了两种类型的操作:转换(transformation)和动作(action),转换时从原来的RDD构建成新的
 RDD,而动作时通过RDD来计算的结果,并将结果返回给驱动程序或者保存到外部存储系统
eg val right=lines.filter(lines=>lines.contains("right"))    //right是新的RDD
   right.first()    //action
    动作和转换的不同之处取决于Spark计算RDD的方式,spark在第一次使用代码中的动作时才开始计算,spark可以看到整个变换链,它可以
计算仅需要其结果的数据,对于first()动作,spark只扫描到匹配的第一行,不用读整个文件,也就是RDDS的惰性转换
    spark的RDDS在默认情况下每次都要进行重新计算,如果要重用可以使用RDD.persist(持久化方法),可以持久化到内存或磁盘
    每次调用一个新的动作,整个RDD必须从头开始计算,为了提高效率,可以将中间结果持久化
 
Spark子框架
   Spark Streaming
     RDD之间通过lineage相连接,RDD中任意的Partition出错,都可以并行地在其他机器上将确实的Partition计算出来,这个容错恢复方式比连续计算模型(Storm)效率更高
     Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG图分解,以及Spark的任务集的调度过程
     实时性,Spark Streaming Batch Size的选取在0.5~2秒之间(Storm相对的最小延迟在100ms)
     吞吐量,Spark Streaming比storm高2~5倍
 
     Spark编程时对于RDD的操作,Spark Streaming是对DStream的操作
     Spark Streaming初始化     在开始进行DStream操作前,对SparkStreaming进行初始化生成StreamingContext
          eg var ssc=new StreamingContext('Spark://...','WordCount',Seconds(1),[Homes],[Jars])     //batch size 1秒输入的数据进行一次Job处理
     Spark Streaming有特定的窗口操作,涉及两个参数:一个是滑动窗口的宽度,一个是窗口滑动频率,必须是batch size的整数倍
          eg 过去5秒为一个输入窗口,每1秒统计一下WordCount,我们会将过去5秒的每一秒的WordCount都进行统计,然后叠加
               val wordCounts=words.map(x=>(x,1)).reduceByKeyAndWindow(-+-,Seconds(5s),Seconds(1))
 
Spark运行模式
     在Yarn出来前,Hadoop MapReduce属于整个Hadoop生态体系核心,但由于调度开销巨大,中间数据写磁盘导致运行速度慢等缺点,并不适合实时计算等场景
     Spark是一个分布式内存性计算框架,与yarn结合,是的Spark可以与MapReduce运行于同一个集群中

spark随笔的更多相关文章

  1. Spark随笔(三):straggler的产生原因

    首先,介绍前辈研究的基于MapReduce框架的outlier产生原因:其次,根据这些方面来分析Spark架构中的straggler:最后,根据阅览的优化办法,谈谈自己的看法. 一.MapReduce ...

  2. Spark随笔(二):深入学习

    一.如何选择粗粒度和细粒度 从底层往上引申来理解粗粒度与细粒度. 一层:一个类,具有三个属性值.为了查询这个类的所有实例,细粒度查询的程度为属性值,即依次查询每个实例化对象的属性值,查询三次:粗粒度按 ...

  3. Spark随笔(一):Spark的综合认识

    一.Spark与Hadoop的关系 Spark和Hadoop只是共用了底层的MapReduce编程模型,即它们均是基于MapReduce思想所开发的分布式数据处理系统. Hadoop采用MapRedu ...

  4. Spark 3000门徒第一课随笔

    昨晚听了王家林老师的Spark 3000门徒系列课程的第一课,把scala基础过了一遍,对ArrayBuffer有了新的认识: Array本身创建后不可修改ArrayBuffer可修改import s ...

  5. spark SQL随笔

    sparkSQL 1.主要的数据结构 DataFreames 2.开始使用:SQLContext 创建步骤: Val  sc:sparkContext Val  sqlContext=new org. ...

  6. Apache Spark简单介绍、安装及使用

    Apache Spark简介 Apache Spark是一个高速的通用型计算引擎,用来实现分布式的大规模数据的处理任务. 分布式的处理方式可以使以前单台计算机面对大规模数据时处理不了的情况成为可能. ...

  7. 《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  8. Hadoop随笔(二):Hadoop V1到Hadoop V2的主要变化

    一.消失的概念与新鲜的名词 Hadoop V2相对于Hadoop V1的变化主要在于资源管理和任务调度,计算模型仍然保持map/reduce的模型.资源管理和任务调度的变化导致了工作流程的变化,一些概 ...

  9. windows下spark开发环境配置

    http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...

随机推荐

  1. 20175314 《Java程序设计》第九周学习总结

    20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...

  2. rror: too many values to unpack

    方法返回值

  3. openal在vs2010中的配置

    下载openal开发工具:相关资料可以在OpenAL官网http://connect.creativelabs.com/openal/default.aspx上获得.这里下载的SDK为OpenAL11 ...

  4. python3 urllib 类

    urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google ...

  5. Java并发编程:深入剖析ThreadLocal(转)

    目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类 三.ThreadLocal的应用场景 原文链接:http://www.cnblogs.com/dolphin052 ...

  6. 2018-2019-2 20175234 实验二《Java面向对象程序设计》实验报告

    目录 实验内容 实验要求 实验步骤 实验收获 参考资料 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 解设计模式 实验 ...

  7. 十二、针对单个工程来配置jdk版本

    转载自:https://jingyan.baidu.com/article/9f63fb91427b06c8400f0e98.html 首先小编这里的eclipse工作空间默认的jdk版本是jdk1. ...

  8. C语言编写程序计算圆上的点的坐标

    Problem Description There is a cycle with its center on the origin. Now give you a point on the cycl ...

  9. Spring Cloud Eureka的集群配置(六)

    1.再次创建2个Eureka工程 工程名:microservicecloud-eureka-7002 工程名:microservicecloud-eureka-7003 2.pom.xml文件 < ...

  10. 使用PHP实现手机端APP支付宝的支付功能

    最近应业务需求,做了支付宝支付和微信支付,今天分享一下手机端app支付宝支付对接流程,实际开发过程是前后端分离,前端调用后端API接口,实现功能返回数据,我所用的跨挤啊为TP5,大致可以分为四步: 1 ...