Spark Standaloneモードアプリケーション開発

10191 ワード

一、Scalaバージョン:
手順は次のとおりです.package scala import org.apache.spark.SparkContext import org.apache.spark.SparkConf object Test {      def main(args: Array[String]) {        val logFile = "file:///spark-bin-0.9.1/README.md"        val conf = new SparkConf().setAppName( "Spark Application in Scala" )        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))      }    } }
このファイルをコンパイルするにはxxxを作成する必要があります.sbtファイル、このファイルはpomに似ています.xmlファイル、ここではscalaを作成します.sbtファイル、内容は以下の通りです.name := "Spark application in Scala" version := "1.0" scalaVersion := "2.10.4" libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0" resolvers += "Akka Repository" at "http://repo.akka.io/releases/"
コンパイル:# sbt/sbt package [info] Done packaging. [success] Total time: 270 s, completed Jun 11 , 2014 1 : 05 : 54 AM
二、Javaバージョン/**   * User:   * Date: 14-6-10   * Time: 11:37   * bolg: https://www.iteblog.com   * :https://www.iteblog.com/archives/1041   * , hadoop、hive、spark、shark、flume ,   * :iteblog_hadoop   */ /* SimpleApp.java */ import org.apache.spark.api.java.*; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.Function;
  public class SimpleApp {      public static void main(String[] args) {          String logFile = "file:///spark-bin-0.9.1/README.md" ;          SparkConf conf = new SparkConf().setAppName( "Spark Application in Java" );          JavaSparkContext sc = new JavaSparkContext(conf);          JavaRDD<String> logData = sc.textFile(logFile).cache();
           long numAs = logData.filter( new Function<String, Boolean>() {              public Boolean call(String s) { return s.contains( "a" ); }          }).count();
           long numBs = logData.filter( new Function<String, Boolean>() {              public Boolean call(String s) { return s.contains( "b" ); }          }).count();
           System.out.println( "Lines with a: " + numAs + ",lines with b: " + numBs);      } }
本プログラムはそれぞれREADMEを統計する.mdファイルにaとbを含む行数.本プロジェクトのpom.xmlファイルの内容は次のとおりです.<?xml version= "1.0" encoding= "UTF-8" ?> <project xmlns= "http://maven.apache.org/POM/4.0.0"           xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"           xsi:schemaLocation="http: //maven.apache.org/POM/4.0.0              http: //maven.apache.org/xsd/maven-4.0.0.xsd">      <modelVersion> 4.0 . 0 </modelVersion>
       <groupId>spark</groupId>      <artifactId>spark</artifactId>      <version> 1.0 </version>
       <dependencies>          <dependency>              <groupId>org.apache.spark</groupId>              <artifactId>spark-core_2. 10 </artifactId>              <version> 1.0 . 0 </version>          </dependency>      </dependencies> </project>
Mavenを使用してこのプロジェクトをコンパイルします.# mvn install [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 5 .815s [INFO] Finished at: Wed Jun 11 00 : 01 : 57 CST 2014 [INFO] Final Memory: 13M/32M [INFO] ------------------------------------------------------------------------
三、Pythonバージョン# # User: # Date: 14 - 6 - 10 # Time: 11 : 37 # bolg: https: //www.iteblog.com # :https: //www.iteblog.com/archives/1041 # , hadoop、hive、spark、shark、flume , # :iteblog_hadoop # from pyspark import SparkContext
  logFile = "file:///spark-bin-0.9.1/README.md" sc = SparkContext( "local" , "Spark Application in Python" ) logData = sc.textFile(logFile).cache()
  numAs = logData.filter(lambda s: 'a' in s).count() numBs = logData.filter(lambda s: 'b' in s).count()
  print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
四、テスト運行
本プログラムのプログラム環境はSpark 1.0.0で、単機モード、テストは以下の通りである:1、Scalaバージョンのプログラムをテストする# bin/spark-submit -- class "scala.Test"   \                     --master local[ 4 ]    \                target/scala- 2.10 /simple-project_2. 10 - 1.0 .jar
  14 / 06 / 11 01 : 07 : 53 INFO spark.SparkContext: Job finished: count at Test.scala: 18 , took 0.019705 s Lines with a: 62 , Lines with b: 35
2、Javaバージョンをテストするプログラム# bin/spark-submit -- class "SimpleApp"   \                     --master local[ 4 ]    \                target/spark- 1.0 -SNAPSHOT.jar
  14 / 06 / 11 00 : 49 : 14 INFO spark.SparkContext: Job finished: count at SimpleApp.java: 22 , took 0.019374 s Lines with a: 62 , lines with b: 35
3、Pythonバージョンのプログラムをテストする# bin/spark-submit --master local[ 4 ]    \                  simple.py
  Lines with a: 62 , lines with b: 35