Spark官方2 ---------Spark 编程指南(1.5.0)

Posted Mr.Ming2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark官方2 ---------Spark 编程指南(1.5.0)相关的知识,希望对你有一定的参考价值。

概述

在高层次上,每个Spark应用程序都由一个运行用户main方法的driver program组成,并在集群上执行各种 parallel operations。Spark提供的主要抽象是resilient distributed dataset (RDD),它是可以并行操作的群集节点之间分配的元素的集合。RDD是由Hadoop文件系统(或任何其他Hadoop支持的文件系统)中的文件或驱动程序中的现有Scala集合开始,并进行转换创建的。用户还可以要求Spark在内存中保留RDD,从而在并行操作中有效地重用RDD。最后,RDD自动从节点故障中恢复。

Spark中的第二个抽象是可以在并行操作中使用的共享变量。默认情况下,当Spark将并行功能作为一组任务在不同节点上运行时,它会将功能中使用的每个变量的副本发送到每个任务。有时,需要在任务之间或任务和驱动程序之间共享一个变量。Spark支持两种类型的共享变量:广播变量,可用于缓存所有节点上的内存中的值,以及累加器,它们只是“添加”到诸如计数器和总和之间的变量。

本指南显示了Spark支持的每种语言中的每个功能。可以通过启动Spark的交互式shell 进行学习- Scala shell的bin / spark-shell或Python的bin / pyspark。

 

依赖

Spark 1.5.0适用于Java 7及更高版本。如果您使用Java 8,Spark可以简单地编写函数来支持lambda表达式,否则可以使用org.apache.spark.api.java.function包中的类。

要在Java中编写Spark应用程序,需要在Spark上添加依赖关系。Spark可通过Maven Central获得:

groupId = org.apache.spark
artifactId = spark-core_2.10
version = 1.5.0

另外,如果您希望访问HDFS群集,则需要为您的HDFS版本的hadoop-client添加依赖关系。一些常见的HDFS版本标签列在第三方发行版页面上。

groupId = org.apache.hadoop
artifactId = hadoop-client
version = <your-hdfs-version>

最后,您需要将一些Spark类导入到程序中。添加以下行:

import org.apache.spark.api.java.JavaSparkContext
import org.apache.spark.api.java.JavaRDD
import org.apache.spark.SparkConf

 

Resilient Distributed Datasets (RDDs)

 Spark围绕着弹性分布数据集(RDD)的概念,RDD是一种容错的并行操作元素集合。创建RDD有两种方法:并行化驱动程序中的现有集合,或者在外部存储系统(如共享文件系统,HDFS,HBase或提供Hadoop InputFormat的任何数据源)中引用数据集。

Parallelized Collections

External Datasets

Spark可以从Hadoop支持的任何存储源创建分布式数据集,包括本地文件系统,HDFS,Cassandra,HBase,Amazon S3等。Spark支持文本文件,SequenceFiles和任何其他Hadoop InputFormat。

文本文件RDD可以使用SparkContext的textFile方法创建。该方法获取文件的URI(机器上的本地路径,或hdfs://,s3n://,etc URI),并将其作为行的集合读取。这是一个示例调用:

JavaRDD<String> distFile = sc.textFile("data.txt");

 一旦创建,distFile可以通过数据集操作来执行。例如,我们可以使用map来添加所有行的大小,并按如下所示减少操作:distFile.map(s - > s.length())。reduce((a,b) - > a b)。

 

有关Spark的阅读文件的一些注意事项:

 

以上是关于Spark官方2 ---------Spark 编程指南(1.5.0)的主要内容,如果未能解决你的问题,请参考以下文章

基于Java实现编程式提交Spark任务

基于Java实现编程式提交Spark任务

Spark官方文档: Spark Configuration(Spark配置)

Apache Spark:CentOS7下的提交和执行一个官方的jar项目包

Spark 学习

Spark学习之路 (二十三)SparkStreaming的官方文档