为了账号安全,请及时绑定邮箱和手机立即绑定

Spark从零开始

Terby JAVA开发工程师
难度初级
时长 2小时18分
学习人数
综合评分9.80
56人评价 查看评价
9.8 内容实用
9.7 简洁易懂
9.9 逻辑清晰
  • http://img1.sycdn.imooc.com//5eca7f6f0001753215880748.jpg

    val rdd2 = rdd.map(line=>(line.split(" ")(0), line))


    http://img1.sycdn.imooc.com//5eca7fbd0001991a15960636.jpg

    http://img1.sycdn.imooc.com//5eca7fff00014e1017240552.jpghttp://img1.sycdn.imooc.com//5eca801e000120fe15980676.jpg







    查看全部
  • http://img1.sycdn.imooc.com//5eca7e5c0001243f15860886.jpg

    http://img1.sycdn.imooc.com//5eca7e9f0001525915620608.jpg

    http://img1.sycdn.imooc.com//5eca7efd000167f716040606.jpg

    http://img1.sycdn.imooc.com//5eca7f0d0001e6a315860612.jpg

    http://img1.sycdn.imooc.com//5eca7f230001649615100522.jpg


    RDDs的血统关系图

    延迟计算

    RDD.persist()


    查看全部
    0 采集 收起 来源:RDDS的特性

    2020-05-24

  • Action介绍:

    在RDD上计算出来一个结果。

    把结果返回给driver program或保存在文件系统,count(),save

    http://img1.sycdn.imooc.com//5eca7d6100019b9e12180696.jpghttp://img1.sycdn.imooc.com//5eca7d6a0001c79b12040830.jpg

    http://img1.sycdn.imooc.com//5eca7d7a0001950f15600446.jpg

    rdd.reduce((x,y)=>x+y)

    http://img1.sycdn.imooc.com//5eca7dcf0001751015600558.jpghttp://img1.sycdn.imooc.com//5eca7df50001f15412200394.jpghttp://img1.sycdn.imooc.com//5eca7de40001be7214860486.jpg

    http://img1.sycdn.imooc.com//5eca7e2500018de913920448.jpg




    查看全部
  • Transformations介绍:

    Transformations(转换)

    从之前的RDD构建一个新的RDD,像map()和filter()


    逐元素Transformations:

    map()接收函数,把函数应用到RDD的每一个元素,返回新RDD

    filter()接收函数,返回只包含满足filter()函数的元素的新RDD

    flatMap(),对每个输入元素,输出多个输出元素。flat压扁的意思,将RDD中元素压扁后返回一个新的RDD


    val lines = inputs.flatMap(line=>line.split(" "))

    lines.foreach(println)



    查看全部
  • http://img1.sycdn.imooc.com//5eca7815000169d213560912.jpg

    http://img1.sycdn.imooc.com//5eca783600016c9f14280564.jpg

    http://img1.sycdn.imooc.com//5eca789b000179c215160572.jpg

    http://img1.sycdn.imooc.com//5eca78dd00012f4115340624.jpghttp://img1.sycdn.imooc.com//5eca790d000162fe14760470.jpghttp://img1.sycdn.imooc.com//5eca792e0001c50315580564.jpghttp://img1.sycdn.imooc.com//5eca79780001327314020450.jpg

    http://img1.sycdn.imooc.com//5eca7998000107e014120588.jpg

     http://img1.sycdn.imooc.com//5eca79df0001440512860608.jpghttp://img1.sycdn.imooc.com//5eca7a1b0001626e14840600.jpg

    Driver Program

    SparkContext

    RDDs








    查看全部
    0 采集 收起 来源:Rdds介绍

    2020-05-24




  • http://img1.sycdn.imooc.com//5eca75500001af7714040744.jpg

    http://img1.sycdn.imooc.com//5eca76060001375312800624.jpg

    http://img1.sycdn.imooc.com//5eca76b10001a99a04220500.jpg

    http://img1.sycdn.imooc.com//5eca76be0001e46411860552.jpg

    http://img1.sycdn.imooc.com//5eca76e20001b41807180454.jpg


    http://img1.sycdn.imooc.com//5eca77190001d18611440556.jpg



    WordCount程序开发

    查看全部
  • Spark下载,安装;

    Spark Shell操作



    http://img1.sycdn.imooc.com//5eca49c00001fac016220750.jpg

    http://img1.sycdn.imooc.com//5eca71cd0001f48316160742.jpg

    http://img1.sycdn.imooc.com//5eca72050001506715680630.jpg

    http://img1.sycdn.imooc.com//5eca72140001ecd615400714.jpg

    http://img1.sycdn.imooc.com//5eca724600018b6915780764.jpg

    http://img1.sycdn.imooc.com//5eca732400010d8b15080636.jpg




    查看全部
    0 采集 收起 来源:spark安装

    2020-05-24

  • Hadoop应用场景:离线处理、对时效性要求不高(执行时间几分钟到几小时不等);

    Spark应用场景:时效性要求高的场景、机器学习等领域。

    两者比较:

    这是生态系统,每个组件都有其作用,各善其职即可;

    Spark不具有HDFS的存储能力,要借助HDFS等持久化数据;

    大数据将会孕育出更多的新技术





    查看全部

  • http://img1.sycdn.imooc.com//5eca482500011aac15980690.jpghttp://img1.sycdn.imooc.com//5eca48380001fdd614300460.jpg

    http://img1.sycdn.imooc.com//5eca48400001982815980550.jpg

    http://img1.sycdn.imooc.com//5eca485f0001ebb614700636.jpg

    http://img1.sycdn.imooc.com//5eca48740001509915560620.jpg

    http://img1.sycdn.imooc.com//5eca488200010a4514320438.jpg

    紧密集成的优点:

    Spark底层优化了,基于Spark底层的组件,也得到了相应的优化

    紧密集成,节省了各个组件组合使用时的部署、测试等时间

    向Spark增加新的组件时,其他组件,可立即享用新组件的功能



    查看全部
    0 采集 收起 来源:Spark生态介绍

    2020-05-24

  • 1、Spark是一个快速且通用的集群计算平台

    2、Spark是快速的

        Spark扩充了流行的MapReduce计算模型

        Spark是基于内存的计算

    3、Spark是通用的

        Spark的设计容纳了其他分布式系统拥有的功能

        批处理、迭代式计算、交互查询和流处理等

        优点:降低了维护成本

    4、Spark是高度开放的

        Spark提供了Python、Java、Scala、SQL的API和丰富的内置库

        Spark和其他的大数据工具整合的很好,包括Hadoop、kafka等


    查看全部
    0 采集 收起 来源:Spark简介

    2020-05-24

  • spark core功能

    查看全部
    0 采集 收起 来源:Spark生态介绍

    2020-04-15

  • spark组件

    查看全部
    0 采集 收起 来源:Spark生态介绍

    2020-04-15

  • Spark简介

    1. Spark是什么:

      1. Spark是一个快速且通用的集群计算平台

    • Spark的特点

    1. Spark提供了Python, Java, Scala, SQL的API和丰富的内置库。

    2. Spark和其他的大数据工具整合的很好,包括Hadoop, Kafka等

    1. Spark的设计容纳了其他分布式系统拥有的功能,批处理,迭代式计算,交互查询和流处理等。

    2. 优点:降低了维护成本

    1. Spark扩充了流行的MapReduce计算模型

    2. Spark是基于内存的计算 

    1. Spark是快速的

    2. Spark是通用的

    3. Spark是高度开放的

    Spark历史

    1.  诞生于2009年,加州大学伯克利分校RAD实验室的一个研究项目,最初是基于Hadoop MapReduce

    2. 发现MapReduce在迭代式计算和交互式上抵消,引入内存存储

    3. 2010年3月份Spark开源

    4. 2011年AMP实验室在Spark上开发高级组件,像Spark Streaming

    5. 2013年转移到了Apache下,不久便成为顶级项目了。

    Spark组件:Spark包含多个紧密集成的组件

    1. Spark底层优化了,基于Spark底层的组件,也得到了相应的优化。

    2. 紧密集成,节省了各个组件组合使用时的部署,测试等时间。

    3. 向Spark增加新的组件时,其他组件,可立刻享用新组件的功能。

    1. 就是集群管理,Spark自带一个集群管理是单独调度器。

    2. 常见集群管理包括Hadoop YARN, Apache Mesos。

    1. 是处理图的库(例如,社交网络图),并进行图的并行计算。

    2. 像Spark Streaming, Spark SQL一样, 它也集成了RDD API。

    3. 它提供了各种图的操作,和常用的图算法,例如PangeRank算法。

    4. 应用场景,图计算

    1. 一个包含通用机器学习功能的包,Machine learning lib.

    2. 包含分类,聚类,回归等,还包括模型评估,和数据导入。

    3. Milb提供的上面这些方法,都支持集群上的横向扩展。

    4. 应用场景,机器学习。

    1. 是实施数据流处理的组件,类似Storm。

    2. Spark Streaming提供了API来操作实施流数据。

    3. 应用场景,企业中用来从Kafka接受数据做实时统计。

    1. 是Spark处理结构化数据的库,就像Hive SQL,MySQL一样。

    2. 应用场景,企业中用来做报表统计。

    1. 包含Spark的基本功能,包含任务调度,内存管理,容错机制等。

    2. 内部定义了RDDs(弹性分布式数据集)

    3. 提供了很多API来创建和操作这些RDDs。

    4. 应用场景,为其他组件提供底层的服务。

    1. Spark Core: 

    2. Spark SQL:

    3. Spark Streaming:

    4. Mlib:

    5. Graphx:

    6. Cluster Managers:

    7. 紧密集成的优点:

    Spark与Hadoop的比较

    1. Doug Cutting(Hadoop之父)的观点

    1. 这是生态系统,每个组件都有其作用,各善其职即可。

    2. Spark不具有HDFS的存储能力,要借助HDFS等持久化数据。

    3. 大数据将会孕育出更多的新技术。

    1. 时效性要求高的场景

    2. 机器学习等领域

    1. 离线处理

    2. 对时效性要求不高

    1. Hadoop应用场景

    2. Spark应用场景

    3. 比较

    Spark安装

    1. 配置ssh无密登陆:

    2. WordCount:

    1. ssh-keygen

    2. .ssh目录下cat xxx_rsa.pub > authorized_keys

    3. chmod 600 authorized_keys 

    1. 创建一个Spark Context

    2. 加载数据

    3. 把每一行分割成单词

    4. 转换成pairs并且计数

    1. Scala安装:

    2. IDEA下载

    3. 插件安装:Scala

    4. 搭建开发环境常遇到的问题

    5. IntelliJ IDEA 常用设置

    1. 下载地址:https://www.scala-lang.org/

    1. 网络问题,导致sbt插件下载失败,解决方法,找一个好的网络环境。

    2. 版本匹配问题:Scala2.10.5, jdk1.8

    1. Spark的shell使你能够处理分布在集群上的数据。

    2. Spark把数据加载到节点的内存中,因此分布式处理可在秒级完成。

    3. 快速使迭代式计算,实时查询,分析一般能够在shell中完成。

    4. Spark提供了Python shells和Scala shells。

    5. Python Shell:

    6. Scala Shell

    1. bin/pyspark

    1. var lines = sc.textFile("../testfile/helloSpark")

    2. lines.conut()

    3. lines.first()

    4. 修改日志级别log4j.rootCategory=WARN, console

    1. bin/spark-shell

    2. ```

    3. ```

    1. bin:包含用来和Spark交互的可执行未见,如Spark shell。

    2. core, streaming, python, ...包含主要组件的源代码。

    3. examples包含一些单机的Spark jobs,可以单机运行的例子。

    1. 下载地址:http://spark.apache.org/downloads.html

    2. 搭Spark不需要Hadoop,如有hadoop集群,可下载相应的版本解压。

    1. Spark 是scala写的,运行在JVM上,所以运行环境Java7+

    2. 如果使用Python API,需要安装Python 2.6+或者Python3.4+。

    3. Spark 1.6.2 -Scala 2.10  Spark 2.0.0 -Scala 2.11

    1. Spark运行环境

    2. Spark下载:

    3. Spark目录

    4. Spark的Shell

    5. Spark开发环境的搭建

    6. 开发第一个Spark程序

    RDDs介绍

    1. Scala的变量声明

    2. Scala的匿名函数和类型推断

    1. val:变量值是不可修改的,类似java final。

    2. var:变量值定义完是可以修改的。

    1. 创建变量是val/var

    1. lines.filter(line => line.contains("world")),定义一个匿名函数,接受line.

    2. 使用line这个Strig类型的变量上的contains方法,并且返回结果

    3. line不需要制定类型,会自动推断

    1. 把一个存在的集合传给SparkContext的parallelize()方法,测试用

    2. 加载外部数据集

    1. val rdd = sc.parallelize(Array(1, 2, 2, 4), 4)

    2. 第1个参数:待并行化处理的集合

    3. 第2个参数:分区个数

    1. val rddText = sc.textFile("helloSpark.txt")

    1. 每个分片包括一部分数据,partitions可在集群不同节点上计算。

    2. 分片是Spark并行处理的单元,Spark顺序的,并行的处理分片。

    1. Resilient distributed datasets(弹性分布式数据集,简称RDDs)

    2. 这些RDDs,并行的分布在整个集群中。

    3. RDDs是Spark分发数据和计算的基础抽象类。

    4. 一个RDD是一个不可改变的分布式集合对象。

    5. Spark中,所有的计算都是通过RDDs的创建,转换,操作完成的。

    6. 一个RDD内部有很多partition(分片)组成的。

    1. Driver programs通过SparkContext对象访问Spark。

    2. SparkContext对象代表和一个集群的连接。

    3. 在Shell中SparkContext自动创建好了,就是sc。

    1. 包含程序的main()方法,RDDs的定义和操作。

    2. 它管理很多节点,我们称作executors。

    1. Driver program:

    2. SparkContext:

    3. RDDs:

    4. 分片:

    5. RDDs的创建方法:

    6. Scala的基础知识

    RDD基本操作 Transformation

    1. RDDs支持数学集合的计算,例如并集,交集计算。

    1. map(): map()接收函数,把函数应用到RDD的每一个元素,返回新的RDD。

    2. filter(): filter()接受函数,返回只包含满足filter()函数的元素的新RDD。

    3. flatMap(): flatMap()对每个输入元素,输出多个输出元素。flat压扁的意思,将RDD中的元素压扁后返回一个新的RDD。

    1. 转换

    2. 从之前的RDD构建一个新的RDD,像map() 和 filter()。

    1. Transformations介绍:

    2. 逐元素Transformation

    3. 集合运算

    RDD基本操作 Action

    1. Action介绍:在RDD上计算出来一个结果。把结果返回给driver program或保存在文件系统,count(), save()

    2. collect(): 返回RDD的所有元素。

    3. count(): 计数。

    4. countByValue(): 返回一个map表示唯一元素出现的个数。

    5. take(num): 返回几个元素。

    6. top(num): 返回前几个元素。

    7. takeOrdered(num)(ordering): 返回基于提供的排序算法的前几个元素。

    8. takeSample(withReplacement, num, [seed]): 取样例。

    9. reduce(fun): 合并RDD中元素。

    10. fold(zero)(fun): 与reduce()相似提供zero value。

    11. aggregate(zeroValue)(seqOp, combOp): 与fold()相似,返回不同类型。

    12. foreach(fun): 对RDD的每个元素作用函数,什么也不返回

    RDDs的特性

    1. 默认每次在RDDs上面进行action操作时,Spark都重新计算RDDs,如果像重复利用一个RDD,可以使用RDD.persist()。

    2. unpersist()方法从缓存中移除。

    3. 例子RDD.persist()

    1. Spark对RDDs的计算是,他们第一次使用action操作的时候。

    2. 这种方式在处理大数据的时候特别有用,可以减少数据的传输。

    3. Spark内部记录metadata表明transformations操作已经被响应了。

    4. 加载数据也是延迟计算,数据只有在必要的时候,才会被加载进去。

    1. Spark维护着RDDs之间的依赖关系和创建关系,叫做血统关系图

    2. Spark使用血统关系图来计算每个RDD的需求和恢复丢失的数据

    1. RDDs的血统关系图:

    2. 延迟计算(Lazy Evaluation):

    3. RDD.persist(): 持久化

    KeyValue对RDDs

    1. 使用map()函数,返回key/value对,例如,包含数行数据的RDD,把每行数据的第一个单词作为keys

    2. KeyValue对RDDs的Transformations

    3. combineByKey(createCombiner, mergeValue, mergeCombiners, partitioner)

    1. reduceByKey(fun): 把相同Key的结合。

    2. groupByKey(): 把相同的key的values分组。

    3. combineByKey(): 把相同key的结合,使用不同的返回类型。

    4. mapValues(fun): 函数作用于pairRDD的每个元素,key不变

    5. flatMapValues(fun): 符号化的时候使用

    6. keys: 仅返回keys

    7. values: 仅返回values

    8. sortByKey(): 按照key排序的RDD

    1. 最常用的基于key的聚合函数,返回的类型可以与输入类型不一样,许多基于key的聚合函数都用到了它,像groupByKey()

    2. 原理,便利partition中的元素,元素的key,要么之前见过的,要么不是。如果是新元素,使用我们提供的createCombiner()函数,如果是这个partition中已经存在的key,就会使用mergeValue()函数,合计每个partition的结果的时候,使用mergeCombiners()函数

    1. 创建KeyValue对RDDs

    Spark基础课程总结

    1. Spark介绍。

    2. Spark安装,开发环境搭建,WordConut程序开发和运行。

    3. RDDs介绍,Transformations,Actions

    4. RDDs的特性,KeyValue对RDDs

    后续课程:

    1. Spark架构

    2. Spark运行过程

    3. Spark程序部署



    查看全部
    1 采集 收起 来源:Spark课程总结

    2020-03-15

  • rdds的特性

    rdd.persist()可以传入一个级别,表示是否存在内存中或硬盘上,以及是否执行序列化操作等,级别不同,对应占用空间和cpu消耗情况是不一样的。


    查看全部
    0 采集 收起 来源:RDDS的特性

    2020-03-15

  • RDD不可改变的分布式数据集合对象

    所有的计算都是RDD的生成,转换操作完成

    一个RDD内部由许多partitions分片组成

    分片是并行处理单元, spark底层会并行的,或者顺行的处理。


    查看全部
    0 采集 收起 来源:Rdds介绍

    2020-03-15

举报

0/150
提交
取消
课程须知
1、 简单Linux的操作
老师告诉你能学到什么?
1、了解Spark到底是什么 2、了解Spark和Hadoop的区别 3、了解Spark的基础知识和概念 4、掌握Spark RDD的基本操作和特性 5、掌握Spark程序的开发和部署流程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!