gpt4 book ai didi

java - 如何在AWS Lambda中解决java.lang.RuntimeException:java.lang.ClassNotFoundException:org.apache.hadoop.fs.LocalFileSystem?

转载 作者:行者123 更新时间:2023-12-02 20:16:31 25 4
gpt4 key购买 nike

设置hadoop configuration后,即使jar文件中存在java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.hadoop.fs.LocalFileSystem,我也得到org.apache.hadoop.fs.LocalFileSystem

最佳答案

解决方案是从classloader函数“删除” getClassByName。例如。使用org.apache.hadoop.conf.Configuration重写的方法创建getClass,例如:

Configuration hadoopConfig = new Configuration() {
public Class<?> getClassByName(String name) throws ClassNotFoundException {
return Class.forName(name);
}

};
注释
  • 这只是工作实现。原始实现使用Class.forName(name, true, classLoader);,因此新的覆盖
    如果这样,则代码可能无法正常工作,添加if语句以改变org.apache.hadoop.fs.LocalFileSystem的逻辑
  • 发生错误,并且仅针对AWS lambda修复。在其他环境(例如真正的Hadoop集群)中,这可能
    不合适的解决方案
  • 关于java - 如何在AWS Lambda中解决java.lang.RuntimeException:java.lang.ClassNotFoundException:org.apache.hadoop.fs.LocalFileSystem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63097976/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com