在standalone-cluster模式上运行spark应用程序(用sbt打包)

环境:

       在同一台机器上启动一个master和一个slave,进入$spark_home

       启动master使用 ./sbin/start-master

       启动slave使用./bin/spark-class org.apache.spark.deploy.worker.Worker spark://<sparkmaster>:7077


spark应用程序:

       创建一个应用程序目录/home/snowman/test, 创建源程序 src/main/scala/FirstProg.scala

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._

object SimpleApp {
  def main(args: Array[String]) {
    val logFile = "/home/snowman/kexueguairen.txt" // Should be some file on your system
    val sc = new SparkContext("spark://sparkmaster:7077", "Simple App", "<$SPARK_HOME>",
      List("file:///home/snowman/test/target/scala-2.10/simple-project_2.10-1.0.jar"))
    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()
    val numThes = logData.filter(line => line.contains("the")).count()
    println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
    println("Lines with the: %s".format(numThes))
  }
}

       创建sbt配置文件firstapp.sbt

name := "Simple Project"

version := "1.0"

scalaVersion := "2.10.3"

libraryDependencies += "org.apache.spark" %% "spark-core" % "0.9.1"

resolvers += "Akka Repository" at "http://repo.akka.io/releases/"

       使用sbt打包, 第一次运行时先执行sbt, 第一次运行会下载很多依赖包,比较慢,

       sbt package

       如果重新打包,可以sbt clean, 然后sbt package

       这时会生成 target/scala-2.10/simple-project_2.10-1.0.jar


       运行应用程序

         在spak_home下运行./bin/spark-class org.apache.spark.deploy.Client launch spark://sparkmaster:7077  file:///home/snowman/test/target/scala-2.10/simple-project_2.10-1.0.jar SimpleApp


        web监控

           在http://<spark_master_ip>:8080可以看到监控页面,里面有刚才运行的应用程序的结果


            程序的标准输出和错误输出可见work/dirver-***目录下的stdout和stderr



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值