linux - java.lang.UnsatisfiedLinkError :/opt/oracle/oraloader-2. 0.0-2/lib/libolh11.so : libclntsh. so.11.1: 无法打开共享对象文件

标签 linux oracle hadoop classpath hdfs

我在集群上运行 hadoop 作业时得到以下信息。

2012-12-11 04:20:47,642 INFO oracle.hadoop.loader.lib.output.OCIOutputFormat: loadNativeLib: java.library.path=/opt/oracle/oraloader-2.0.0-2/lib:/usr/lib/hadoop-0.20-mapreduce/lib/native/Linux-amd64-64:/u04/hadoop/mapred/taskTracker/ashsshar/jobcache/job_201212110407_0004/attempt_201212110407_0004_r_000000_0/work
2012-12-11 04:20:47,657 INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs' truncater with mapRetainSize=-1 and reduceRetainSize=-1
2012-12-11 04:20:47,661 FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.UnsatisfiedLinkError: /opt/oracle/oraloader-2.0.0-2/lib/libolh11.so: libclntsh.so.11.1: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)

我已经检查过这些文件是否存在于集群节点所需的目录下。我还更改了这些文件的权限。

我修改了 hadoop 的 mapred-site.xml 中的 LD_LIBRARY_PATH,以使用 mapred.child.java.opts 选项添加这些必需的第 3 方 jar

最佳答案

要让 java 库加载器找到库,您应该设置 JAVA_LIBRARY_PATH

关于linux - java.lang.UnsatisfiedLinkError :/opt/oracle/oraloader-2. 0.0-2/lib/libolh11.so : libclntsh. so.11.1: 无法打开共享对象文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13820918/

相关文章:

java - 如何将 Hazelcast 与 Hbase 连接?

java - 记录 MapReduce 作业的标准做法

linux - 有没有办法让非 root 进程绑定(bind)到 Linux 上的 "privileged"端口?

linux - 如何在登录时比较 MD5 哈希值?

asp.net - 如何在 x64 中使用 WebDev.WebServer.exe (VS Web Server)?

oracle - 如何从 Oracle PL/SQL 访问 Subversion?

linux - 有没有办法将一个系统上运行的应用程序转移到另一个系统上?

linux - 构建不需要最新 glibc 的软件的最佳方法是什么?

java - java.io.File 的静态最终字段的命名不标准

java - 在 Hadoop DistributedCache 上存储 TreeSet