zoukankan      html  css  js  c++  java
  • Spark操作算子本质-RDD的容错

    Spark操作算子本质-RDD的容错
    spark模式
    1.standalone
    master 资源调度
    worker
    2.yarn
    resourcemanager 资源调度
    nodemanager
    在一个集群中只能有一个资源调度,如果有两个资源调度的话,master和resourcemanager之间是不通信的,master分配某个资源,resourcemanager是不知道的
    一个application对应一个driver,driver是用来分配任务的

    流程示意
    分布式文件系统(File system)加载数据集
    transformations延迟执行 针对RDD的操作
    Action触发执行(生成并提交job)


    默认缓存策略是MEMORY_ONLY
    OFF_HEAP:不使用Java堆内存,使用tachyon,但是需要spark和tachyon做对接(百度用的多,tachyon是国产)

    转换算子 操作算子

    transformations:延时执行,从一个RDD到另一个RDD
    map:通过匿名函数将RDD中T类型的数据转换为U类型的数据
    filter:通过匿名函数判断某个字段返回true/false,true保留,false过滤,RDD中的数据类型不变,但是有可能会被过滤掉
    flatMap::通过匿名函数将RDD中的T类型的每条数据转换为类型为U的序列集合,先做一步Map操作,再做一步flat操作,压扁
    sample:传一个Float进来,随机采样
    groupByKey:按照key分组,把key相同的值聚合在一起,每个key对应一个序列集合,有个shuffle,上游的partition根据某些规则将数据分到下游不同的partition中去
    reduceByKey:对键值对操作,消除重复的key,相邻元素依次进行操作,操作产生的结果类型不可变
    union:合并两个RDD,RDD类型必须一致
    join:传入两个键值对的RDD,将两个RDD相同key的value值整合到一起,并进行一个排列组合
    cogroup:传入两个键值对的RDD,将两个RDD相同key的value放到两个序列集合中
    crossProduct():将两个RDD封装为一个RDD,一个RDD的值为key,一个为value
    mapValues:RDD中元素为键值对的,对每个元素进行操作,但是只对value进行操作。
    sort:对某个值进行排序
    partitionBy:可以传一个自定义的partitioner,如果RDD为键值对,就可以传一个新的partitioner进行分区
    actions:立即执行,从RDD到最终结果
    count():返回RDD中元素个数
    collect():慎用,把RDD中的元素全部返回,放入序列集合中
    reduce():把RDD中的元素依次进行操作,生成最后的一个值
    lookup():根据传入的key在RDD中找对应的值,放入序列集合中
    save():对操作结果做存储,比如存入HDFS,本地文件系统

    transformations和actions的本质区别
    transformations是从一个RDD到另一个RDD
    actions是从一个RDD到最终结果
    现象:碰到action操作就封装一个job执行

     

    checkpoint
    Lineage过长
    对RDD做doCheckpoint()
    SparkContext.setCheckPointDir() 需要设置磁盘路径,通常是HDFS中。
    设置数据库路径
    把RDD存到磁盘中去,即使内存中的缓存被清掉,也可以去磁盘中读取,计算效率更高。
    坏处:占用DiskIO

    如果RDD的代价特别大,除了普通缓存,还可以使用checkpoint,存入磁盘,RDD复用时会先找cache() persist(),再找checkpoint中的

  • 相关阅读:
    广大数据结构复习之顺序表
    vs2017编译器编写c语言代码函数安全问题
    大数据学习之Spark Streaming进阶 52
    大数据学习之Spark Streaming基础 52
    大数据学习之SparkSQL数据源 51
    本地eclipse idea 写的Hadoop的API和 spark程序不能访问云服务器中的数据
    大数据学习之SparkSQL 50
    【PHP】上传图片翻转问题
    【Linux】CentOS7 安装gdb
    【Linux】yum [Errno 14] HTTP Error 404
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/8552305.html
Copyright © 2011-2022 走看看