0

クラスターで 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 オプションを使用してこれらの必要なサードパーティの jar ファイルを追加しました。

4

1 に答える 1

1

Java ライブラリ ローダーがライブラリを見つけるには、JAVA_LIBRARY_PATH を設定する必要があります。

于 2012-12-11T13:25:04.203 に答える