专注app软件定制开发idea下将scala编写的项目打成jar包

专注app软件定制开发如果文章里的内容有误,专注app软件定制开发为避免误人子弟,专注app软件定制开发请一定评论或直接私信我。
专注app软件定制开发我已经很认真的将文章写的尽可能详细,希望这篇文章能给予您微不足道的帮助。

摘要

,中文译作星星之火,时至今日,这把由scala所编写的星星之火已经在大数据领域燃起燎原之势。

尽管我们可以直接在idea上运行我们用编写的spark项目,但实际生产中,我们还是需要将一个项目打成一个jar包上线成产环境。

软件版本:
idea:2020
spark:2.0.1
scala:2.11
hadoop-2.7.2

希望您已经在您的window下准备好上述环境,linux下同样如此

本文整个流程如下:
idea编写测试代码–>windows下降项目打包成jar–>上传至linux并使用命令提交job
本文使用的是yarn模式提交

不选择maven打包成jar的原因是maven编译项目并不默认支持scala,如果希望使用maven编译scala项目,需要使用插件,maven插件的引入对于如在下之类的maven小白而言,并不太友好

因此我们直接使用idea打包

1、编写测试代码

使用maven创建项目的过程本文便不再赘述
但是需要注意的是,如果你使用了hdfs,就需要将core-site.xml文件和hdfs-site.xml文件拷贝到项目的resource目录下,使用到了hive需要拷贝hive-site.xml文件和在pom文件中添加对应依赖

代码如下:
注意:这是在打包上传到linux的代码,在window下测试时请将文中的yarn改成loacl[*]

package com.cqaiimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object shellTest {  // window下设置用户为hadoop有权限用户  System.setProperty("HADOOP_USER_NAME", "root")  def main(args: Array[String]): Unit = {    /*    start test    包名:com.cqai.shellTest     */    // 注意:如果你希望使用yarn提交你的job,master一定要是yarn,如果不是yarn,使用local[*]等,有可能会报错的    val sparkConf = new SparkConf().setMaster("yarn").setAppName("test1")    val context = new SparkContext(sparkConf)    // 注意:虽然spark默认从hadoop下读取文件,但建议还是写上hdfs,不然在window上有可能会报错 不认识的主机test    val inputRDD: RDD[String] = context.textFile("hdfs://master:9000/user/hive/warehouse/initial_data.db/customer/mach_data=20220801")    // 这行代码用于在window下测试和让inputRDD加载执行,    inputRDD.collect().foreach(println)    context.stop()  }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2、window下使用idea打包

强烈建议直接看后面的图片流程,我在图片上标明了箭头,按照箭头从小到大操作即可
文字流程如下:
点击idea右上角
File=>projectStructure=>artifacts=>点击加号=>点击from model。。。(后续单词我省略了) =>点击Main Class选项框后的文件夹
=>点击Projet=>选择你项目入口的main方法=>点击ok=>在弹出的界面点击ok=>再次点击ok=>点击Build=>Build artifacts=>选中您的项目点击build即可
如果您希望打成瘦包,建议查看图片

胖包和瘦包的区别是胖包含有你用到的依赖和你写的代码,而瘦包只有你写好的代码,瘦包需要你linux上的软件版本和你的依赖版本相同才能运行
我打的是瘦包,如果您希望打成胖包,在下面第五张图片中有对应方法介绍
1

2

3

4

4

5

6

7

8

随后在linux下启动hadoop,并提交job
进程截图:

提交命令
注意我打好的jar包放在了spark目录下我创建的job目录里

 spark-submit \ --class com.cqai.shellTest \ --master yarn \ --deploy-mode cluster \ ./job/matchPargetTest.jar 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6


如果您出现这个错误

建议您将这个目录删除

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发