我想在程序中使用自定义java URL ClassLoader从HDFS加载jar。 我在互联网上找不到例子。我已经看到了从本地文件系统加载jar的示例,如下面的线程中所述:
任何建议或工作示例?
感谢。
答案 0 :(得分:1)
这就是你可以编写自定义类加载器的方法。代码是用scala编写的。你可以把它转换成java。
class HdfsClassLoaderclassLoader(classLoader: ClassLoader) extends URLClassLoader(Array.ofDim[URL](0), classLoader) {
def addJarToClasspath(jarName: String) {
synchronized {
var conf = new Configuration
val fileSystem = FileSystem.get(conf)
val path = new Path(jarName);
if (!fileSystem.exists(path)) {
println("File does not exists")
}
val uriPath = path.toUri()
val urlPath = uriPath.toURL()
println(urlPath.getFile)
addURL(urlPath)
}
}
}