windows下IDEA配置Spark调试错误总结

Windows10下 用IDEA编写scala程序导入sparkjar包在本地local模式下跑
会遇到以下几个问题:

  1. Could not locate executable null\bin\winutils.exe in the Hadoop binaries
    解释一下这个问题,一般会报错,典型的没有winutils.exe文件导致的错误
    在这里插入图片描述
    记住这个shell.335的错,我们看源码点进去
    在这里插入图片描述
    报错的原因是hadoop_home_dir没有
    在这里插入图片描述
    仔细找我们发现是通过checkHadoopHome()
    方法获得的变量,继续看一下
    在这里插入图片描述

到这里我们就清楚了,最开始可以通过程序写进去hadoop的路径,例如:
在这里插入图片描述
System.setProperty(“hadoop.home.dir”,“E:\Spark\hadoop-common-2.2.0-bin-ma” )

当然也可以不写,这样就可以走system.getenv方法直接从配置环境变量中获取也可以

这里给大家一个路径,可以下载各个版本的winutils.exe文件,因为版本不对也会导致报错
https://github.com/4ttty/winutils/tree/master

下载完毕后记得放在非中文路径下避免检测不到
然后配置环境变量HADOOP_HOME 然后运行即可

  1. 有的时候即使配置了环境变量运行多次依然没有效果可能是你的IDEA已经有了默认的环境变量所以此时重启IDEA再次运行可能就会成功

  2. org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V
    如果你报的是这个错,代表你的hadoop.dll版本不对应
    在这里插入图片描述
    需要下载和你spark-hadoop版本相对应的hadoop.dll
    即可

IDEA打包常见错误:
打包出来的文件是一个文件夹而不是一个jar包
原因:
在这里插入图片描述

右上角可能变成other,所以需要改成jar类型

注意:
在这里插入图片描述
打成jar的这个减号不要老是点
因为点完以后再次设置的时候会包错
你可以在右边更改配置,但是不要老是删除
在这里插入图片描述

如果报错,可以直接将out文件夹删除,里面存放着编译好的class文件和jar包信息
在这里插入图片描述
然后重试即可!

在spark集群中跑jar包可能会遇到加载不到主类的情况,可能是你的类名或者jar包的位置没有写清楚

仔细看即可!

  1. 如果是你的main方法中什么都没写,就写了个println打印结果报错:
    Error running ‘Test_Demo’: Command line is too long. Shorten command line for Test_Demo or also for Application default configuration.
    翻译:运行“test_demo”时出错:命令行太长。缩短测试演示或应用程序默认配置的命令行。
    这是因为你配置的jar包所在位置的命令行太长了,超出限制
    解决办法:
    修改项目下 .idea\workspace.xml,找到标签 , 在标签里加一行

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章