编写第一个用scala写的spark任务,用sbt打包成jar,并单机模式下运行



一、编写第一个用scala写的spark应用:

仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序
链接如下:
http://spark.apache.org/docs/latest/quick-start.html

即:

/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SimpleApp {
  def main(args: Array[String]) {
    val logFile = "YOUR_SPARK_HOME/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))
  }
}

整个程序作用是:找到这个文件

YOUR_SPARK_HOME/README.md

中有几个a和几个b。


二、用sbt进行打包成jar:

命令:sbt package
具体步骤见
http://spark.apache.org/docs/latest/quick-start.html
中的Self-Contained Applications

打包时候几点注意:

1、

目录结构一定要对

目录结构可以通过find .来看

有点类似cmake的感觉

2、

总时间,近30分钟,开始打开会terminal没现象10分钟,然后开始要各种resolve,之后要下载很多库,我这边网速超慢

sbt是个联网编译器,

Spark的应用用到了很多RDD的变换,来编译这些库都得去网上下相应的包

最后显示,编译时间11s


这时成功完成SimpleApp

三、在本机上测试:

命令为:

YOUR_SPARK_HOME/bin/spark-submit \

 --class "SimpleApp" \
 --master local[4] \
 target/scala-2.10/simple-project_2.10-1.0.jar

 我对jar的理解就是一个可执行文件了,这个可执行文件在JVM上就可以跑了,local中4是指设置成4个线程,但具体原因我也不知道

注意submit的参数:

--class中 SimpleApp是包名

上传的的jar的地址别写错

一、编写第一个用scala写的spark应用:

仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序
链接如下:
http://spark.apache.org/docs/latest/quick-start.html

即:

/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SimpleApp {
  def main(args: Array[String]) {
    val logFile = "YOUR_SPARK_HOME/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))
  }
}

整个程序作用是:找到这个文件

YOUR_SPARK_HOME/README.md

中有几个a和几个b。


二、用sbt进行打包成jar:

命令:sbt package
具体步骤见
http://spark.apache.org/docs/latest/quick-start.html
中的Self-Contained Applications

打包时候几点注意:

1、

目录结构一定要对

目录结构可以通过find .来看

有点类似cmake的感觉

2、

总时间,近30分钟,开始打开会terminal没现象10分钟,然后开始要各种resolve,之后要下载很多库,我这边网速超慢

sbt是个联网编译器,

Spark的应用用到了很多RDD的变换,来编译这些库都得去网上下相应的包

最后显示,编译时间11s


这时成功完成SimpleApp

三、在本机上测试:

命令为:

YOUR_SPARK_HOME/bin/spark-submit \

 --class "SimpleApp" \
 --master local[4] \
 target/scala-2.10/simple-project_2.10-1.0.jar

 我对jar的理解就是一个可执行文件了,这个可执行文件在JVM上就可以跑了,local中4是指设置成4个线程,但具体原因我也不知道

注意submit的参数:

--class中 SimpleApp是包名

上传的的jar的地址别写错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值