概述

在一个高的层面上,每一个Spark应用都包含一个驱动程序,这个驱动程序在一个集群上运行用户的主要功能和执行各种并行操作。Spark主要的抽象是,提供了一个弹性分布式数据集(resilient distributed dataset,RDD),它是一个贯穿在整个集群的节点上,分区后的元素集合,能够被并行处理,RDDs可以通过启动一个在HDFS(Hadoop file system)的文件来创建,也可以是一个在驱动程序中已经存在的Scala集合,然后对它进行转换。用户可以让Spark把一个RDD持久化到内存中,然后使得它能够在并行操作中被有效地重用。最后,RDDs可以自动恢复节点的失败。

在Spark中的第二个抽象是共享变量,这些变量能够在并行操作中使用。默认情况下,当Spark并行运行一个功能(函数)时,且任务集合在不同的节点上时,它会对每一个任务复制每一个在功能中会用到的变量。有时候,一个变量需要在多个任务中被共享,或者是在任务和驱动程序之间共享。Spark提供了两种变量共享的方式:广播变量,它能够用于缓存一个值到所有节点的内存中;累加器,这种变量只能用于“加”操作,例如计数器和求和。

这个指南用Spark支持的语言,展示了以上每一个特征。如果你运行一个Spark交互脚本(可以是运行bin/spark-shell的Scala脚本,也可以是运行bin/pyspark的Python脚本),它是最容易的学习方法。

results matching ""

    No results matching ""