zoukankan      html  css  js  c++  java
  • Spark学习之路(二)

    1. Spark的逻辑处理流程主要分为四个部分:
    • 数据源:可以是hdfs、分布式kv数据(Hbase)、本地文件等等
    • 数据模型:RDD(分布式弹性数据集)是Spark的核心概念,即输入、输出、中间数据抽象表示为统一的数据模型
    • 数据操作:主要分为transformation和action两种操作
    • 处理数据的计算结果:以文件形式存储到hdfs文件系统或者计算结果汇集到driver端
    1. RDD是如何生成的?

    Spark对程序中的每一个数据进行操作,比如transformation操作(map)就会生成新的rdd,对于复杂的操作(join)则会生成多个rdd

    1. 新的RDD分区数量是如何得到的?

    用户和parent RDD两者共同决定新的RDD分区数量,比如用户可以通过repartion()和coalesce()决定新的RDD分区的个数;如果用户没有决定RDD的个数,那么新的RDD的个数由parent RDD分区个数的最大值决定

    1. 新的RDD和parent RDD之间的依赖关系有哪些?

    根据新的RDD是否完全依赖parent RDD的一个或者多个分区可以定义新的RDD和parent RDD之间是宽依赖还是窄依赖。宽依赖关心仅仅依赖parent RDD分区中的某个部分而非全部,而窄依赖则依赖parent RDD分区中的整个部分。

    1. 为什么要划分RDD之间的依赖关系?

    Spark会根据依赖关系把一个作业job划分为多个阶段stage,对于宽依赖和窄依赖而言,窄依赖对于作业的优化很有利,如果连续的变换操作序列都是窄依赖,就可以把很多个 fork/join 合并为一个,通过这种合并,不但减少了大量的全局路障(Barrier),而且无需保存很多中间结果RDD,这样可以极大地提升性能。

    1. Spark的三种分区方法
    • 水平划分:一般针对输入数据采用这种分区办法,比如hdfs会对数据进行水平划分,按照128M的大小将数据划分为不同的分区
    • Hash划分:使用record的hash值来对数据进行划分
    • Range划分:根据元素的大小按照一定的区间进行分区
    1. 常用的数据操作

    transformation和action

  • 相关阅读:
    SharePoint 创建 Lookup 类型的Site Column解决跨站问题
    Thinking In Design Pattern——MVP模式演绎
    SharePoint自动化部署,利用SPSD工具包
    SharePoint自动化部署,利用PowerShell 导出/导入AD中的用户
    64位内核第十四讲,获取系统滴答数与日期时间
    内核中通过进程PID获取进程的全部路径
    内核中根据进程Pid获取卷的全目录
    内核中PID_HANDLE_OBJECT等互相转换
    获取指定句柄的类型号.
    获取句柄的类型以及对应的ID序号
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14548962.html
Copyright © 2011-2022 走看看