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

原创 2016年08月31日 11:13:43

分别利用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包是可以运行的。

Spark任务提交jar包依赖解决方案

通常我们将spark任务编写后打包成jar包,使用spark-submit进行提交,因为spark是分布式任务,如果运行机器上没有对应的依赖jar文件就会报ClassNotFound的错误。 下面有...
  • wzq294328238
  • wzq294328238
  • 2015年08月28日 16:40
  • 21198

减少spark job jar包的大小

利用java写spark job,工程结构为maven,每次生成的jar都比较大。 spark job 包过大带来以下缺点:打包时间长、jar包上传慢、job启动比较慢。 本文介绍jar包瘦身方法...
  • xueba207
  • xueba207
  • 2016年05月06日 18:13
  • 1143

打包并提交运行Spark应用程序jar包

基于eclipse的Spark IDE可在 http://scala-ide.org/ 下载。 以WordCount为例: package com.lxw.test import org.a...
  • yafeichang
  • yafeichang
  • 2016年11月22日 09:56
  • 5120

Spark集群中使用spark-submit提交jar任务包实战经验

转载: 蜗龙徒行-Spark学习笔记【四】Spark集群中使用spark-submit提交jar任务包实战经验 - cafuc46wingw的专栏 - 博客频道 - CSDN.NET http...
  • zrc199021
  • zrc199021
  • 2017年01月03日 23:22
  • 9016

Spark疑问3之spark 如何并行执行多个Job?

使用Spark的时候一般都是一个application的Job串行执行,如何并行执行? 如何提高spark对计算资源(CPU和内存等)的利用率? 1M数据10个action或者更多的action,...
  • bob601450868
  • bob601450868
  • 2016年05月19日 18:41
  • 3215

spark从入门到放弃 之 分布式运行jar包

scala代码如下: import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache....
  • u011478909
  • u011478909
  • 2016年08月22日 16:04
  • 4113

Spark调优-防止不必要的jar包上传与分发

Spark调优-防止不必要的jar包上传与分发 每个Application都会上传一个spark-assembly-x.x.x-SNAPSHOT-hadoopx.x.x-cdhx.x.x.jar的ja...
  • shenfuli
  • shenfuli
  • 2016年10月27日 17:49
  • 3213

IntelliJ IDEA开发Spark、打JAR包

清明假期折腾了两天,总结了两种方式使用IDE进行spark程序,记录一下: 第一种方法比较简单,两种方式都是采用SBT进行编译的。 注意:本地不需要安装Scala程序,否则在编译程序时有版...
  • fz2543122681
  • fz2543122681
  • 2016年08月24日 23:29
  • 10667

第一次在spark环境下运行jar包

第一次在spark环境下运行jar包,耶耶耶!!!心情赞赞哒!!!! 现在开发的工具也主要换成了Intellij,因为方便嘛!!!之前果然不应该用eclipse,简直是强求啊~~Intellij从开发...
  • curious88323
  • curious88323
  • 2015年08月17日 04:25
  • 5958

spark_jar包

  • 2015年07月11日 21:23
  • 110KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于spark利用jar包跑job的一些总结(一)
举报原因:
原因补充:

(最多只允许输入30个字)