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. [Solution] 985. Sum of Even Numbers After Queries

    Difficulty: Easy Question We have an array A of integers, and an array queries of queries. For the i ...

  2. Servle第四篇(会话技术之cookie)

    会话技术 什么是会话技术 基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一次会话. 为什么我们要使 ...

  3. gitlab-ci.xml:script config should be a string or an array of strings

    The following command in a job script: STATUS_ID=$(grep -Eo "Status Code [0-9]+: Done" som ...

  4. Golang学习---常用库

    1. 路由库:github.com/julienschmidt/httprouter 2. mysql驱动:github.com/go-sql-driver/mysql

  5. 19-03【golang】strings包

    golang的strings包提供了字符串操作的一系列函数.下面做个简单介绍 函数 用法 备注 Compare(a,b sring) 比较两个字符串   Contains(s, substr stri ...

  6. XML Linq 学习笔记

    XML如下: <?xml version="1.0" encoding="utf-8"?> <Dishes> <Dish> ...

  7. android 7.0 调用系统相机崩溃的解决方案(非谷歌官方推荐)

    解决方案: 1.(推荐)7.0之后你的app就算有权限,给出一个URI之后手机也认为你没有权限. 不用修改原有代码,在Application的oncreate方法中:(或者直接放在调用相机的activ ...

  8. docker安装nginx和php

    参考文章:https://www.cnblogs.com/boundless-sky/p/7182410.html 1.下载镜像docker pull nginxdocker pull php:7.2 ...

  9. linux awk使用详解

    转载:https://www.cnblogs.com/xudong-bupt/p/3721210.html   awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的 ...

  10. centos 7 安装vscode

    网上很多写的安装,会遇到一个问题,就是无法启动: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh ...