用SBT编译Spark的WordCount程序

sbt的目录层次

    |--build.sbt
    |--lib
    |--project
    |--src
    |   |--main
    |   |    |--scala
    |   |--test
    |         |--scala
    |--sbt
    |--target

拷贝spark安装目录的sbt目录的 sbt脚本和sbt的jar包

 cp /path/to/spark/sbt/sbt* ~/wordcount/

由于spark的sbt脚本默认查找./sbt目录,修改如下

JAR=sbt/sbt-launch-${SBT_VERSION}.jar
to
JAR=sbt-launch-${SBT_VERSION}.jar

拷贝spark的jar包到,sbt的lib目录

    cp /path/to/spark/assembly/target/scala-2.10/spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar \
    > ~/spark_wordcount/lib/ 

建立build.sbt配置文件,各行需要有一个空行分割

    name := "WordCount"
    [this is bank line]
    version := "1.0.0"
    [this is bank line]
    scalaVersion := "2.10.3"

由于spark的sbt脚本需要到project的build.properties文件找sbt的版本号,我们建立该文件,增加如下内容:

    sbt.version=0.12.4

创建wordcount

mkdir -p ~/wordcount/src/main/scala/spark/example
  vi -p ~/wordcount/src/main/scala/spark/example/WordCount.scala

到wordcount目录,执行编译:

./sbt compile

打jar 包

./sbt package

编译过程,sbt需要上网下载依赖工具包,jna,scala等。编译完成后可以在target/scala-2.10/目录找到打包好的jar

WordCount执行
可以参考Spark分布式运行于hadoop的yarn上的方法,写一个执行脚本

#!/usr/bin/env bash

SPARK_JAR=./assembly/target/scala-2.10/spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar \
    ./bin/spark-class org.apache.spark.deploy.yarn.Client \
      --jar ~/spark_wordcount/target/scala-2.10/wordcount_2.10-1.0.0.jar \
      --class  spark.example.WordCount \
      --args yarn-standalone \
      --args /testWordCount.txt \
      --args /resultWordCount \
      --num-workers 3 \
      --master-memory 4g \
      --worker-memory 2g \
      --worker-cores 2

然后,拷贝一个名为testWordCount.txt的文件进hdfs

  hdfs dfs -copyFromLocal ./testWordCount.txt /testWordCount.txt

转自 http://www.aboutyun.com/thread-8587-1-1.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值