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中的

  • 相关阅读:
    剑指Offer-30.连续子数组的最大和(C++/Java)
    剑指Offer-29.最小的K个数(C++/Java)
    UVA 1616 Caravan Robbers 商队抢劫者(二分)
    UVA 10570 Meeting with Aliens 外星人聚会
    UVA 11093 Just Finish it up 环形跑道 (贪心)
    UVA 12673 Erratic Expansion 奇怪的气球膨胀 (递推)
    UVA 10954 Add All 全部相加 (Huffman编码)
    UVA 714 Copying Books 抄书 (二分)
    UVALive 3523 Knights of the Round Table 圆桌骑士 (无向图点双连通分量)
    codeforecs Gym 100286B Blind Walk
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/8552305.html
Copyright © 2011-2022 走看看