行の下の問題は解決しましたが、別の問題に直面しています。
私はこれをやっています:
DistributedCache.createSymlink(job.getConfiguration());
DistributedCache.addCacheFile(new URI
("hdfs:/user/hadoop/harsh/libnative1.so"),conf.getConfiguration());
そしてマッパーで:
System.loadLibrary("libnative1.so");
(私も System.loadLibrary("libnative1"); System.loadLibrary("native1"); を試しました
しかし、私はこのエラーが発生しています:
java.lang.UnsatisfiedLinkError: no libnative1.so in java.library.path
java.library.path を何に設定すればよいかまったくわかりません.. /home に設定して、すべての .so を分散キャッシュから /home/ にコピーしようとしましたが、それでも機能しませんでした :(
提案/解決策を教えてください。
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
マッパーが実行されているマシンのシステム環境変数 (具体的には、LD_LIBRARY_PATH) を設定したいと考えています。
私は試した :
Runtime run = Runtime.getRuntime();
Process pr=run.exec("export LD_LIBRARY_PATH=/usr/local/:$LD_LIBRARY_PATH");
しかし、IOException がスローされます。
についても知っている
JobConf.MAPRED_MAP_TASK_ENV
しかし、私は JobConf の代わりに Job & Configuration を持つ Hadoop バージョン 0.20.2 を使用しています。
そのような変数を見つけることができません。これも Hadoop 固有の環境変数ではなく、システム環境変数です。
解決策/提案はありますか? 前もって感謝します..