spark程序踩过的坑

本文主要介绍了Scala程序从本地部署到服务器过程中可能遇到的问题及解决方案,包括版本不一致导致的错误、证书问题、Shell脚本兼容性和如何传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、本地运行成功,但是上传到服务器上产生了如下错误:

Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime. ObjectRef.create (Ljava/lang/Object;) Lcala/runtime/ObjectRef;

此类问题往往是由于本地编译scala程序的scala版本和服务器上的版本不统一导致,可以通过更改本地的scala版本号来进行编译。

一般可以通过在服务上执行:more  /etc/profile 查看scala版本,Hadoop版本,spark版本。尽量保持jdk版本也能够统一(没有对jdk版本不一致引发的错误进行具体分析)

2、另外由于证书问题报错:

submit 一个jar文件的时候,会遇到以下报错

报错类型:

Invalid signature file digest for Manifest main attributes

错误产生原因:
jar文件中的META-INF目录中包含一个错误证书,在Linux服务器中执行以下命令:
zip -d <jar file name>.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
3. 曾经犯过一个白痴的问题,在Windows下编辑的shell脚本,直接rz 到服务器上,出现了各种bug,"\"等参数都不支持。
Unix系统中,每行结尾只有“<换行>”,即“\n”,Windows中,每行结尾是<\r\n>。Mac系统中,每行结尾是“<\r>”。Unix/Max系统下的文件在windows中打开的话,所有文字变成一行。
Windows中的文件在Unix/Mac下打开的话,每行的结尾会多出一个^M符号。
如果非要将windows下的文件转化为Unix下的文件的话,在Linux系统中,执行yum install dos2unix。dos2unix命令会将该文件转化为Unix环境识别的文件。
4、如何给java/scala程序的main传入参数
  1. 命令行中运行:a、首先需要编译程序:javac *.java; b、java * args1,args2 .....
  2. 在ide中,run->Edit Configuration->Program arguments

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值