赞
踩
最近在做将spark的代码提交到远程当中遇到很多坑,各种各样的错误:
我是在window当中使用idea开发将本地的代码提交到远程的spark集群上,没有用到local的模式去做(在实际的生产当中不会用到local的方式去做,所以没考虑)
我是直接run的方式在idea当中提交代码的,这里采用的standlone的模式和 on yarn(yarn-client) 的模式,先说一下原理:
我们在本地运行实际还是相当于我们将代码远程的提交到集群上运行时一样的,还是相当于spark-submit的方式进行运行的,在这里也有参数配置和打jar包的形式(这是个人的一些见解)
首先我们应该将core-site.xml,hdfs-site.xml,hive-site.xml,yarn-site.xml,这些配置文件全部放在工程目录的resources下面,方便程序加载到这些配置文件。
下面是遇到的问题;
(1) 代码提交完成之后在yarn上面也启动了application,但是那就是一直会失败,然后我去看启动的container发现container尝试三次都失败了,这是什么情况,然后在运行期间查看了一下日志,包log包找不到不可能啊报错如下
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/Logger
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2570)
at java.lang.Class.getMethod0(Class.java:2813)
at java.lang.Class.getMethod(Class.java:1663)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。