运行spark——4.sbt打jar包

sbt 是 scala 的编译工具

安装:

curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo

sudo mv bintray-sbt-rpm.repo /etc/yum.repos.d/

sudo yum install sbt

 

验证:(会等很长时间)

root@hadoop01 ~]# sbt

sbt:root>

 

常用命令 :

常用命令 (compile编译、package打jar包)

下面是一些非常常用的的 sbt 命令。更加详细的列表请参见 命令行参考。

clean 删除所有生成的文件 (在 target 目录下)。

compile 编译源文件(在 src/main/scala 和 src/main/java 目录下)。

test 编译和运行所有测试。

console 进入到一个包含所有编译的文件和所有依赖的 classpath 的 Scala 解析器。输入 :quit, Ctrl+D (Unix),或者 Ctrl+Z (Windows) 返回到 sbt。

run <参数>* 在和 sbt 所处的同一个虚拟机上执行项目的 main class。

package 将 src/main/resources 下的文件和 src/main/scala 以及 src/main/java 中编译出来的 class 文件打包成一个 jar 文件。

help <命令> 显示指定的命令的详细帮助信息。如果没有指定命令,会显示所有命令的简介。

reload 重新加载构建定义(build.sbt, project/*.scala, project/*.sbt 这些文件中定义的内容)。在修改了构建定义文件之后需要重新加载。

 

build.sbt

build.sbt中每行之间要有空行

name := "hello" // 应目名称

organization := "xxx.xxx.xxx" // 应应名称

version := "0.0.1-SNAPSHOT" // 版本号

scalaVersion := "2.9.2" // 使用的Scala版本号

// 其它build定应

 

打包:

创建一个文件夹,

放入两个文件:WordCount.scala和word-count.sbt

WordCount.scala:

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


object WordCount {
  def main(args: Array[String]): Unit = {
    val inputPath="hdfs://master:9000/test/kmeans_data.txt"
    val outputPath="hdfs://master:9000/test/result"
    val sc = new SparkContext()
    val texts = sc.textFile(inputPath)
    println(sc.master)
    val wordCounts = texts.flatMap{a => a.split(" ")}
      .map(word => (word,1))
      .reduceByKey(_+_)
    wordCounts.saveAsTextFile(outputPath)
  }
}

word-count.sbt:

name := "wordcount"

version := "1.0.0"

scalaVersion := "2.11.12"

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.1" % "provided"

 

在此目录下,打包:sbt package

[root@master WordCount]# sbt package

打包完成后,jar包存放在此文件夹的/target/scala-2.11.12下

 

就可以spark-submit了:

[root@master ~]# spark-submit --class WordCount --master yarn-client file:///export/spark_jar/wordcount_2.11-1.0.0.jar

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值