前几天部门刚来不久的小同学装Hadoop一直失败,报libhadoop加载错误解决不了.过去查看下相关依赖lib都解决了,JAVA_LIBRARY_PATH也指定正确位置了,为啥还会失败呢?
直接强制加载一次nativelib再看发现原来在另外一个目录有人安装了libhadoop,但是版本是错误的,很多依赖都找不到,而HADOOP启动时正加载了这个路径下的libhadoop导致失败的,这是什么原因呢?
查看HADOOP在nativelib的加载过程,最后跟踪到classloader的loadLibrary方法发现:
usr_paths = initializePath("java.library.path");
sys_paths = initializePath("sun.boot.library.path");原来在加载javalib时,classloader是优先加载sys_paths然后才是usr_paths.
我也学习了:)
转载于:https://blog.51cto.com/boylook/1367254
本文详细解析了在部署Hadoop过程中遇到的libhadoop加载错误问题,包括问题定位、解决步骤以及最终的解决方案。通过跟踪classloader的加载过程,揭示了问题根源在于错误的libhadoop版本导致依赖冲突,并提供了排除错误的具体方法。
548

被折叠的 条评论
为什么被折叠?



