AWS GLUE NOCLASSDEFFOUNDERROR在Job.init()上
尝试使用GLUE ETL库在本地调试AWS胶水脚本。 我已经安装了AWS-Glue-libs和Spark-3.1.1-AMZN-0-BIN-3.2.1-AMZN-3.TGZ。
当我运行job.init()
时,我会得到以下错误跟踪:
py4j.protocol.py4jjavaerror:致电z:com.amazonaws.services.glue.util.util.job.init时发生了错误。 :java.lang.noclassdeffounderror:com/typesafe/config/configmergable 在com.amazonaws.services.glue.util.job $ .init(Job.Scala:93) 在com.amazonaws.services.glue.util.job.init(job.scala) 在sun.reflect.nativemethodaccessorimpl.invoke0(天然方法) 在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) 在sun.reflect.delegatingmethodaccessorimpl.invoke(授权methodaccessorimpl.java:43) 在java.lang.reflect.method.invoke(method.java:498) 在py4j.reflection.methodinvoker.invoke(MethodInvoker.java:244) 在py4j.reflection.reflectionengine.invoke(reflectionengine.java:357) 在py4j.gateway.invoke(Gateway.java:282) 在py4j.commands.abstractcommand.invokemethod(AbstractCommand.java:132) 在py4j.commands.callcommand.execute(callcommand.java:79) 在py4j.gatewayconnection.run(gatewayConnection.java:238) 在java.lang.thread.run(thread.java:748) 引起:java.lang.classnotfoundexception:com.typesafe.config.configmergerable 在java.net.urlclassloader.findclass(urlclassloader.java:382) 在java.lang.classloader.loadclass(classloader.java:424) 在sun.misc.launcher $ appclassloader.loadclass(launcher.java:349) 在java.lang.classloader.loadclass(classloader.java:357) ...还有13
Trying to debug AWS Glue scripts locally using Glue ETL library.
I have installed aws-glue-libs and spark-3.1.1-amzn-0-bin-3.2.1-amzn-3.tgz.
When I run job.init()
, I get the following error trace:
py4j.protocol.Py4JJavaError: An error occurred while calling z:com.amazonaws.services.glue.util.Job.init.
: java.lang.NoClassDefFoundError: com/typesafe/config/ConfigMergeable
at com.amazonaws.services.glue.util.Job$.init(Job.scala:93)
at com.amazonaws.services.glue.util.Job.init(Job.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.typesafe.config.ConfigMergeable
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此错误未解决。但是我找到了解决方法。我没有使用Pycharm运行我的脚本,而是使用GluesParkSubmit Bash命令运行它们。现在,它不会在job.init()上丢弃错误。仍在尝试弄清楚如何从本地计算机运行胶水脚本时如何访问数据目录。
This error wasn't resolved per say. But i found a workaround. Instead of running my scripts from pycharm, i run them using gluesparksubmit bash command. Now it doesn't throw error at job.init(). Still trying to figure out how to get access to data catalog when running glue scripts from local machine.
如果是
ConfigMergable
,请检查是否正确JAR
file-config-config -1.3.3.3.3.jar
- 存在于/opt/火花/罐子
dir。整个想法是,
/opt/opt/spark/jars
和./ aws-glue-libs/jarsv1
应该匹配。If it was for
ConfigMergeable
, check if properjar
file -config-1.3.3.jar
- exists in your/opt/spark/jars
dir.Whole idea is that jars in
/opt/spark/jars
and./aws-glue-libs/jarsv1
should match.