• spark配置(5)-独立应用程序


    独立应用程序(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




    参考/转载:http://www.powerxing.com/spark-quick-start-guide/ 





  • 相关阅读:
    Atitit. C#.net clr 2.0 4.0 4.5新特性 v2 s22 1. CLR内部结构 1 2. CLR 版本发展史 3 3. CLR 2.0新特性 4 4. CLR 4 新特性
    Hbase基本命令 悟寰轩
    mvn常用命令 悟寰轩
    linux添加tomcat服务 悟寰轩
    hadoop基本命令 悟寰轩
    Tomcat启动 悟寰轩
    Eclipse自动部署项目到Tomcat的webapps下的有效方法 悟寰轩
    MySQL改变默认编码为utf8 悟寰轩
    myeclipse关闭自动更新 悟寰轩
    Linux命令大全 悟寰轩
  • 原文地址:https://www.cnblogs.com/iathena/p/5615744.html
Copyright © 2020-2023  润新知