spark配置-独立应用程序

Posted iAthena

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark配置-独立应用程序相关的知识,希望对你有一定的参考价值。

独立应用程序(Self-Contained Applications)

现在基于一个简单的APP,通过 Spark API 编写一个独立应用程序。

使用 Scala 编写的程序需要使用 sbt 进行编译打包,相应的,Java 程序使用 Maven 编译打包,而 Python 程序通过 spark-submit 直接提交。

PS:好像spark2.0支持RDD以外的一种数据集(DataSets), 对python处理的性能有很大提升,几乎与scala性能旗鼓相当。

  1. cd ~           # 进入用户主文件夹
  2. mkdir ./sparkapp        # 创建应用程序根目录
  3. mkdir -p ./sparkapp/src/main/scala     # 创建所需的文件夹结构

 ./sparkapp/src/main/scala 下建立一个名为 SimpleApp.scala 的文件:

  1. /* SimpleApp.scala */
  2. import org.apache.spark.SparkContext
  3. import org.apache.spark.SparkContext._
  4. import org.apache.spark.SparkConf
  5. object SimpleApp {
  6.  def main(args: Array[String]) {
  7.    val logFile = "file:///usr/local/spark/README.md" // Should be some file on your system
  8.    val conf = new SparkConf().setAppName("Simple Application")
  9.    val sc = new SparkContext(conf)
  10.    val logData = sc.textFile(logFile, 2).cache()
  11.    val numAs = logData.filter(line => line.contains("a")).count()
  12.    val numBs = logData.filter(line => line.contains("b")).count()
  13.    println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
  14.  }
  15. }

该程序计算 /usr/local/spark/README 文件中包含 “a” 的行数 和包含 “b” 的行数。

程序依赖 Spark API,因此我们需要通过 sbt 进行编译打包。

  1. vim ./sparkapp/simple.sbt

添加:

  1. name := "Simple Project"
  2. version := "1.0"
  3. scalaVersion := "2.10.5"
  4. libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1"

文件 simple.sbt 需要指明 Spark 和 Scala 的版本。

启动 Spark shell 的过程中可以看到 

技术分享


安装sbt

  1. sudo mkdir /usr/local/sbt
  2. sudo chown -R hadoop /usr/local/sbt    
  3. cd /usr/local/sbt

  1. cp /home/yuan/Downloads/sbt-launch\ \(1\).jar /usr/local/sbt/sbt-launch.jar

  2. chmod u+x ./sbt


  1. ./sbt sbt-version







以上是关于spark配置-独立应用程序的主要内容,如果未能解决你的问题,请参考以下文章

python+spark程序代码片段

在这个 spark 代码片段中 ordering.by 是啥意思?

通过独立集群中的 REST 作业提交的 spark.master 配置被忽略

Spark中文手册10:spark部署:提交应用程序及独立部署模式

大数据计算 Spark的安装和基础编程

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段