spark配置(5)-獨立應用程序

獨立應用程序(Self-Contained Applications)python

如今基於一個簡單的APP,經過 Spark API 編寫一個獨立應用程序。shell

使用 Scala 編寫的程序須要使用 sbt 進行編譯打包,相應的,Java 程序使用 Maven 編譯打包,而 Python 程序經過 spark-submit 直接提交。apache

PS:好像spark2.0支持RDD之外的一種數據集(DataSets), 對python處理的性能有很大提高,幾乎與scala性能旗鼓至關。vim

 
 
 
 
cd ~           # 進入用戶主文件夾mkdir ./sparkapp        # 建立應用程序根目錄mkdir -p ./sparkapp/src/main/scala     # 建立所需的文件夾結構

 ./sparkapp/src/main/scala 下創建一個名爲 SimpleApp.scala 的文件:app

 
 
 
 
/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConf object SimpleApp {  def main(args: Array[String]) {    val logFile = "file:///usr/local/spark/README.md" // Should be some file on your system    val conf = new SparkConf().setAppName("Simple Application")    val sc = new SparkContext(conf)    val logData = sc.textFile(logFile, 2).cache()    val numAs = logData.filter(line => line.contains("a")).count()    val numBs = logData.filter(line => line.contains("b")).count()    println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))  }}

該程序計算 /usr/local/spark/README 文件中包含 「a」 的行數 和包含 「b」 的行數。ide

程序依賴 Spark API,所以咱們須要經過 sbt 進行編譯打包。oop

 
 
 
 
vim ./sparkapp/simple.sbt

添加:性能

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

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

啓動 Spark shell 的過程當中能夠看到 spa


安裝sbt

 
 
 
 
sudo mkdir /usr/local/sbtsudo chown -R hadoop /usr/local/sbt     cd /usr/local/sbt

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

  
  
  
  
./sbt sbt-version




參考/轉載:http://www.powerxing.com/spark-quick-start-guide/ 



相關文章
相關標籤/搜索