idea下将scala编写的项目打成jar包
如果文章里的内容有误,为避免误人子弟,请一定评论或直接私信我。
我已经很认真的将文章写的尽可能详细,希望这篇文章能给予您微不足道的帮助。
摘要
spark,中文译作星星之火,时至今日,这把由scala所编写的星星之火已经在大数据领域燃起燎原之势。
尽管我们可以直接在idea上运行我们用scala编写的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.RDD
import 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上有可能会报错 不认识的主机testval 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()}
}
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
如果您出现这个错误
建议您将这个目录删除
idea下将scala编写的项目打成jar包相关推荐
- SpringBoot项目打成jar包后,无法读取resources下的文件
最近在使用aspose将word转PDF并进行签章打印,读取凭证文件时遇到一个问题,凭证文件放在resources目录下,Windows下可正常读取,但是打成jar包部署到Linux服务器上却取不到文 ...
- idea将项目打成jar包
在用jmeter做压测时,需要将项目打成jar包放至在如下目录 /Users/admin/Documents/software/apache-jmeter-5.1.1/apache-jmeter-5. ...
- 命令行把java项目打成jar包
工作中需要把jenkin-client项目打成jar包使用. 以下为在命令行用jar命令打包,记录一下: 切换到项目路径,执行 jar cf jenkin-client.jar java-clie ...
- idea将java项目打成jar包
一.idea将java项目打成jar包(非maven方式) File -->Project Structure -->Artifacts --> Jar --> From mo ...
- 解决项目打成jar包上线无法读取配置文件(可通过挂载的方式解决)
背景介绍:因为项目上线部署要打成jar包,jar包相当于一个大文件夹,无目录分层,自然就没法读到resources下的文件,于是我找了很多springboot-项目获取resources下文件的方法都 ...
- Java项目打成Jar包后执行Jar包指定方法
最近在考虑跳个槽的问题,也看了几个面试,其中有一个面试让我本地写一个蛇形矩阵,打成Jar包,并且可以使用java -jar 命令启动,本人基础不太牢固,这个问题我找了半天才找到解决的办法,面试题答完直 ...
- cmd命令将web项目打成jar包_2020全网首发!JDK14之jpackage命令尝鲜
jpackage命令使用场景 使用场景是面向java桌面端程序打包. 可以让windows/mac 直接双击使用java程序,对系统里面有没有jdk/jre不做要求. 在这里,我们先理一下以前java ...
- 「问题解决」java web项目打成jar包运行后工具类无法读取模板文件的解决方法
介绍语 本号主要是Java常用关键技术点,通用工具类的分享:以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+d ...
- IDEA下maven编译打包Java项目成jar包但是resource下配置文件打包不成功
今天在IDEA下打包一个Java项目,准备打包成jar包直接执行,打包之后运行时候一直提示resource下资源文件找不到,但我又确实配置了的,而且在IDEA上可以运行,但是打包成jar包之后就运行不 ...
最新文章
- OpenCV+python:模板匹配
- MFC,ADO方式实现数据库操作
- 任务 进程 线程区别
- 1988-B. 有序集合
- TCP/IP,HTTP,Socket的区别与联系
- python判断性别程序_python 实现性别识别
- 关于内核态和用户态切换开销的测试
- 我查这么多数据,会不会把数据库内存打爆?
- left和offsetLeft
- 使用JDBC+JSP分层实现新闻管理系统注册、登录功能
- 2010.11.18 关于向窗口发送消息
- t分布 u分布 卡方分布_F分布、t分布、正太分布与卡方分布的联系与区别
- 冒泡排序代码实现与详解
- 腾讯云Centos8.0 CPU使用率100%,top查询为kthreaddk占用异常
- 如何低成本做好网络营销
- 使用python替换word文档部分内容
- zookeeper--模拟买票代码
- 带动画效果的下拉菜单
- 论文推荐-计算机视觉
- [转]JAVA环境变量设置完全版