如何解决aws lambda中的java.lang.runtimeexception:java.lang.classnotfoundexception:org.apache.hadoop.fs.localfilesystem?

bxgwgixi  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(446)

在设置hadoop配置之后 java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.hadoop.fs.LocalFileSystem 即使在什么时候 org.apache.hadoop.fs.LocalFileSystem 存在于jar文件中。

bnl4lu3b

bnl4lu3b1#

解决方法是“删除” classloadergetClassByName 功能。e、 g.创建 org.apache.hadoop.conf.ConfigurationgetClass 重写的方法,如:

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

};

笔记
这只是工作执行。原始实现用途 Class.forName(name, true, classLoader); 因此,如果这样添加,新重写的代码可能无法工作 if 语句更改逻辑obly for org.apache.hadoop.fs.LocalFileSystem 发生了错误,并且仅针对aws lambda进行了修复。在其他环境中(如真正的hadoop集群),这可能不是一个合适的解决方案

相关问题