问题记录:hadoop集群提交job时出现Exception in thread "main" java.io.IOException: Error opening job jar:

时间:2022-01-27 14:56:13

在向hadoop集群提交job时提示以下错误:

ubuntu@ip-172-31-9-9:~/hadoopfile/feature$ hadoop jar /home/ubuntu/hadoopfile/feature/feature-getpoint7.jar /feature/in feature/out1
Exception in thread "main" java.io.IOException: Error opening job jar: /home/ubuntu/hadoopfile/feature/feature-getpoint7.jar
at org.apache.hadoop.util.RunJar.run(RunJar.java:160)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.util.zip.ZipException: zip file is empty
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:91)
at org.apache.hadoop.util.RunJar.run(RunJar.java:158)
... 1 more

在查阅了有关博客和论坛后,得到有如下几种情况:

1、jar包在所指定的路径下不存在;

2、jar包文件损坏;

3、源代码存在问题。

经再次确认,我的jar包路径没问题,源代码逻辑上应该也没什么问题。

只剩下jar包文件损坏,这个问题怎么想都不会发生的,我使用的SecureCRT和SecureFX访问服务器(Amazon云服务),操作和传输文件没什么问题的,中间也想不到有哪个地方能出问题导致传输的文件损坏,然而意想不到的事情发生了,我再次查看了服务器上传输的jar包文件大小,居然都是0。

ubuntu@ip-172-31-9-9:~/hadoopfile/feature$ ls -la
total 12
drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 18 10:41 .
drwxrwxr-x 13 ubuntu ubuntu 4096 Jul 18 06:42 ..
-rw-rw-r-- 1 ubuntu ubuntu 228 Jul 18 04:29 cat.txt
-rwxrwxr-x 1 ubuntu ubuntu 0 Jul 18 07:41 feature-getpoint1.jar
-rwxrwxr-x 1 ubuntu ubuntu 0 Jul 18 07:45 feature-getpoint2.jar
-rwxrwxr-x 1 ubuntu ubuntu 0 Jul 18 08:05 feature-getpoint3.jar
-rw-rw-r-- 1 ubuntu ubuntu 0 Jul 18 08:14 feature-getpoint4.jar
-rwxrwxr-x 1 ubuntu ubuntu 0 Jul 18 08:22 feature-getpoint5.jar
-rw-rw-r-- 1 ubuntu ubuntu 0 Jul 18 08:27 feature-getpoint6.jar
-rw-rw-r-- 1 ubuntu ubuntu 0 Jul 18 10:41 feature-getpoint7.jar
还真是jar文件的问题,开始传输小的测试文件(cat.txt)时还能完整传输的,jar包居然都未上传成功,改了半天的源代码,做了这么多版本的jar包居然传上去后大小都为0。再次上传txt文件时也失败,证明确实是SecureFX出了问题。

待解决。。

换其他结点使用SecureCRT和SecureFX连接后可以上传成功,目前尚不知道ubuntu有哪些设置可以影响传输文件的完整性。