关于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包是可以运行的。

利用Intellij Idea在windows搭建spark 开发环境(含打jar包过程)(一)

本文的目的:利用Intellij Idea在windows搭建spark 开发环境 环境:windows 10, intellij idea2016.1.1, spark 1.6.2(HDP),had...

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

scala代码如下: import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache....

Spark jar包找不到解决方法

今天在使用Spark中DataFrame往Mysql中插入RDD,但是一直报出以下的异常次信息: [itelbog@iteblog ~]$ bin/spark-submit --master lo...

Spark 开发环境搭建(4)IDEA Gradle+java方式 Gradle导出jar包

Spark 开发环境搭建(3)IDEA Gradle+SCALA+SPARK的一个简单的示例gradle对于spark来说,是一个打包工具,和maven、sbt工具类似。我们使用其来构建自动打包。1,...

Spark 开发环境搭建(3)IDEA +Maven 方式导出jar包

Spark 开发环境搭建(3)IDEA +Maven 方式导出jar包pom.xmlxml version="1.0" encoding="UTF-8"?> xmlns="http://maven.a...

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

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

spark与scala jar包版本冲突问题

例如spark1.6.0是基于scala2.10.x的,如果用intellj创建基于scala2.11.x的项目,打包出来的jar包,用spark-submit运行spark任务时,会遇到NoSuch...

新建maven后,配置pom.xml文件导入spark的jar包,出现红色叹号

在真正解决红色叹号问题之前,查阅很多相关资料,如配置tomcat,设置jdk等,这也是可能的原因。但是最终解决还是jar包没有成果导入的原因!通过创建maven项目,配置pom.xml文件自动导入sp...
  • wzz87
  • wzz87
  • 2017年03月28日 14:52
  • 1279

spark sql scala 开发环境搭建 以及必要jar包导入

1. scala 环境安装及安装 (官网下载) 2.检验 scala 是否安装成功 3.安装 scala 集成开发环境 IDEA (官网自行下载安装) 4.在 IDEA 上 安装 sca...

Spark submit deploy_mode cluster 中的第三方JAR包

本文介绍了一个种解决spark在cluster模式下提交作业无法添加第三方JAR包并引起class not found 异常的解决方案...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于spark利用jar包跑job的一些总结(一)
举报原因:
原因补充:

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