关闭

关于spark利用jar包跑job的一些总结(一)

标签: sparkjar包scalaideaeclipse
249人阅读 评论(0) 收藏 举报
分类:

分别利用eclipse和IDEA打jar包

用eclipse打包:

用eclipse打包最终还是不能放在spark上用,如果是需要解决问题的,可以直接跳到IDEA部分,这里只介绍一些eclipse的过程,以及最后的问题(如果有能指出问题所在的小伙伴,求指导求教育)

新建Scala工程 - 新建Scala Class - 编写代码:

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

object WordCount {
  def main(args: Array[String]) {
    if (args.length < 1) {
      System.err.println("Usage: <file>")
      System.exit(1)
    }

   val conf = new SparkConf()
    val sc = new SparkContext(conf)
    val line = sc.textFile(args(0))

    line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println)

    println("Please!")
    sc.stop()
  }
}

然后添加spark api的依赖jar包,就是spark编译出来那个spark-assembly-*.jar
两种方法:
(其中第一种方法最后export出来的jar包会很小,虽然有依赖关系,但是包中不把spark-assembly这个jar包封装进去,一般最后的jar包只有几k大小; 第二种方法会把spark-assembly这个jar包封装进去,所以最后得到的jar包会很大,一般会一两百M。)
1、右键你的工程-properties-Java Build Path(左侧)-libraries(右侧上方)-Add External JARs(右侧)
然后加入spark-assembly那个jar包就可以了。
这里写图片描述
2、右键你的工程-New-Folder
随便起个名字(我就是左边的“jar”)
然后把spark-assembly那个jar包直接拖到这个文件夹里
然后右键这个jar包-Build Path-Add Build Path
这里写图片描述

最后右键你的工程-Export-java-JAR file(就正常的导出jar包过程就行)。

用eclipse得到的jar包最终还是不能用,放在spark环境里运行,一直说找不到main函数,就像没把spark-assembly那个jar包封装进去一样。两种方法均尝试了,均以失败告终:
这里写图片描述

用IDEA打包:

同样是新建工程-新建Scala class-码代码
这里写图片描述
然后右键你的工程 - Open Module Setting-Libraries(左边)- 点中间上面的绿色加号-java-选择spark-assembly那个jar包
再点中间上面的绿色加号-Scala SDK- 选择你的Scala路径
这里写图片描述
然后是Artifacts(左边)-点中间上面的绿色加号-JAR-From…
在Main Class那一栏选择包含有main函数的那个object
这里写图片描述
最后回到工程界面,点击上面的Build-Build Artifacts-Build
搞定,生成的jar包在output/artifacts路径下。

用IDEA这个jar包是可以运行的。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:696次
    • 积分:27
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档