Spark 1. 概述,连接Spark, 初始化,一些命令参数

概述

原文地址: http://spark.apache.org/docs/latest/programming-guide.html
仅限交流使用,转载请注明出处。如有错误,欢迎指正!!

Henvealf/译

RDD 可以通过使用 Hadoop 文件系统中的文件或者设备程序中的 Scala 集合来创建和转换成。用户也可以让 Spark 将 RDD 吃就好在内存中,允许并行操作高效的对其重复利用。最后,RDDs 会从失败的节点中自动回复。

Spark 第二个抽象概念就是共享变量(shared variables),他能够被使用在并行操作中。默认情况下,当 Spark 在许多不用的节点上并行的运行一些 task,他就会将每个 task 用到的操作将每个变量拷贝到每个 task 中去使用。有时候,一个变量需要在task或者设备程序之间共享。Spark 提供了两种类型的共享变量:

  • broadcast variables / 广播变量 : 他能够用于将一个值缓存在所有的节点的内存中。

  • accumulators / 累加器 : 比如 counters 个 sums ,一个只能进行加操作的变量。

连接到 Spark

Java 代码

在 Maven 中,需要添加下面的依赖来引入 Spark:

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

当然,如果你想要在 HDFS 中进行存取,你需要添加 Hadoop 依赖

groupId = org.apache.hadoop
artifactId = hadoop-client
version = 

最后,你需要在你的程序中导入几个 Spark 类:

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

Scala

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

初始化 Spark

Java

第一件事情就是创建一个 JavaSparkContext 对象,来告诉 Spark 怎样存取一个集群。 为了创建一个 SparkContext, 你要做的第一件事就是构建一个包含了你的应用的信息的 SparkConf 对象。

SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
JavaSparkContext sc = new JavaSparkContext(conf);

appName 就是你的应用展示在集群UI上的名字。 master 是一个 Spark, Mesos 或者 YARN 集群的 URL,或者指定 “local” 字符串来表明你是运行在本地模式下。我们一般不会将 master 写死,而是在使用 spark-submit 运行的时候来将他传入应用中。在本地模式或者单元测试中,你就可以使用 “local”。

Scala

和 Java 中类似,第一件事,是就是创建一个 SparkContext 对象。

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

在 Shell 中使用

Scala

在 Spark 中,SparkContext 总是内建的为你建好了,Scala 命令行中就是变量 sc。你自己创建 SparkContext 是无用的。下面有几个运行参数:

  • --master 参数来指定你的 Spark 连接到哪里。
    $ ./bin/spark-shell --master local[4]
    
  • --jars 添加jar包到你的 classpath 中。
    $ ./bin/spark-shell --master local[4] --jars code.jar
    
  • --package 向 Shell 回话中添加 maven 依赖。用逗号分割:
    $ ./bin/spark-shell --master local[4] --packages "org.example:example:0.1"
    
  • --repositories 添加库

可以使用 spark-shell --help 来查看更多信息。

End !!

你可能感兴趣的:(Spark 1. 概述,连接Spark, 初始化,一些命令参数)