Spark官方文档学习笔记

总览(Overview)

从系统的高层讲,每一个Spark应用程序都包含着一个驱动程序,驱动程序执行用户的main方法和执行在集群上的不同的parallel操作。Spark提供的一个主要的抽象是RDD(弹性分布式集合, resilient distributed dataset)。RDD是多个可在集群中分片的元素的集合。因此,它们可以被并行操作。RDD的创建可以是由HDFS中的一个文件开始创建(或者任何其他hadoop支持的文件系统),或者由在驱动程序中的Scala集合创建,然后转换这个集合。使用者也可以让RDD驻留在内存中,这样可以使RDD更有效的进行并行操作。最后,RDD可以从结点故障中自动的恢复。
Spark中的第二抽象是在并行操作中使用的共享广播变量。默认情况下,当Spark在不同的结点中运行一个作为一组任务的方法时,在每个任务的方法中都会有每个变量的拷贝。有时,某些变量需要在各个任务中共享,或者需要在驱动程序和任务之间共享。Spark支持两种类型的共享变量,共享广播变量(在所有结点的内存中缓存),累加器(变量只能被”加”,例如计数和求和)
这篇guide将展示在各个spark所支持语言中这些特色。如果你使用Spark交互式shell程序,这将变得很容易。bin/spark-shell来启动Scala shell,bin/pyspark来启动python shell。
和Scala相连接
Spark 2.2.0 默认是分布式的,和Scala 2.11相匹配。为了用scala编写应用程序,你需要使用兼容的scala版本(例如,2.11.X)
为了编写Spark应用程序,你可以添加通过maven中心仓库添加maven依赖:

groupId = org.apache.spark
artifactId = spark-core_2.11
version = 2.2.0

另外,如果你希望使用HDFS集群,则你需要添加hadoop-client依赖(对应你的hdfs版本):

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

最后,你需要引入一些Spark class,加入下面的两行代码:

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf

Spark的初始化

在一个Spark程序中,首先要做的是创建一个SparkContext对象。这个对象向Spark参数了如何利用集群。为了创建SparkContext对象,你首先需要创建SparkConf对象,该对象包含着你的应用信息:

val conf = new SparkConf().setAppName(appName).setMaster(master)
new SparkContext(conf)

参数appname是你的应用程序名称。参数maser是Spark,Mesos 或者YARN集群的URL,或者一个特殊的”local”来执行本地调试。在实际中,当在集群中运行时,你并不想在程序中硬编码master,而是采用spark-submi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值