Spark编程指南V1.4.0(翻译),编程指南v1.4.0
Spark编程指南V1.4.0
· 简介
· 接入Spark
· Spark初始化
· 使用Shell
· 在集群上部署代码
· 弹性分布式数据集
· 并行集合(Parallelized Collections)
· 其他数据集
· RDD的操作
· 基础操作
· 向Spark传递函数
· 处理键值对
· 转换
· 动作
· RDD的持久化
· 存储级别的选择
· 移除数据
· 共享变量
· 广播变量
· 累加器
· 部署到一个集群上
· 单元测试
· 从1.0之前版本的Spark迁移
· 下一步该怎么做
简介
总的来说,每一个Spark的应用,都是由一个驱动程序(driver program)构成,它运行用户的main函数,在一个集群上执行各种各样的并行操作。Spark提出的最主要抽象概念是弹性分布式数据集 (resilientdistributed dataset,RDD),它是一个元素集合,划分到集群的各个节点上,可以被并行操作。RDDs的创建可以从HDFS(或者任意其他支持Hadoop文件系统)上的一个文件开始,或者通过转换驱动程序(driver program)中已存在的Scala集合而来。用户也可以让Spark保留一个RDD在内存中,使其能在并行操作中被有效的重复使用。最后,RDD能自动从节点故障中恢复。
Spark的第二个抽象概念是共享变量(shared variables),可以在并行操作中使用。在默认情况下,Spark通过不同节点上的一系列任务来运行一个函数,它将每一个函数中用到的变量的拷贝传递到每一个任务中。有时候,一个变量需要在任务之间,或任务与驱动程序之间被共享。Spark支持两种类型的共享变量:广播变量,可以在内存的所有的结点上缓存变量;累加器:只能用于做加法的变量,例如计数或求和。
本指南将用每一种Spark支持的语言来展示这些特性。这都是很容易来跟着做的如果你启动了Spark的交互式Shell或者Scala的bin/spark-shell或者Python的bin/pyspark。
接入Spark
Scala
Spark1.2.1需要和Scala2.10一起使用。如果你要用Scala来编写应用,你需要用一个相应版本的Scala(例如2.10.X)。
要写一个Spark应用程序,你需要在添加Spark的Maven依赖,Spark可以通过Maven中心库来获得:
[html] view plaincopy
- groupId = org.apache.spark
- artifactId = spark-core_2.10
- version = 1.2.1
除此之外,如果你想访问一个HDFS集群,你需要根据你的HDFS版本,添加一个hadoop-client的依赖。一些通用的HDFS版本标签在第三方发行版页面列出。
[html] view plaincopy
- groupId = org.apache.hadoop
- artifactId = hadoop-client
- version = <your-hdfs-version

