idea 怎么把scala 打成jar包

idea 怎么把scala 打成jar包,第1张

(1)准备工作

1) 安装JDK 6或者JDK 7

2) 安装scala 2.10.x (注意版本)

2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同):http://www.jetbrains.com/idea/download/

3)将下载的Intellij IDEA解压后,安装scala插件,流程如下:

依次选择“Configure”–>“Plugins”–>“Browse repositories”,输入scala,然后安装即可

(2)搭建Spark源码阅读环境(需要联网)

一种方法是直接依次选择“import project”–>选择spark所在目录 –>“SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的网络环境(不建议在windows下 *** 作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。

第二种方法是首先在linux *** 作系统上生成intellij项目文件,然后在intellij IDEA中直接通过“Open Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是:在spark源代码根目录下,输入sbt/sbt gen-idea

注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij IDEA中。

(3)搭建Spark开发环境

在intellij IDEA中创建scala project,并依次选择“File”–>“project structure” –>“Libraries”,选择“+”,将spark-hadoop 对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar包,其他不需要),如果IDE没有识别scala 库,则需要以同样方式将scala库导入。之后开发scala程序即可:

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

仿照spark的 quick-start的Self-Contained Applications写出第一个scala完整程序

链接如下:

即:

/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject 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

具体步骤见

中的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完整程序

链接如下:

即:

/* SimpleApp.scala */import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject 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

具体步骤见

中的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的地址别写错

阅读全文


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11511950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存