reduce メソッド用にロードする必要があるネイティブ ライブラリがあり、それを分散キャッシュに追加しましたが、マップ メソッドで System.loadLibrary(mylib.so) を呼び出すと、エラーが発生し、マップ タスクが失敗しました。
Error: no mylib.so in java.library.path
分散キャッシュに追加しましたが。手順がありませんか?私のジョブ構成では、次を呼び出します。
DistributedCache.addCacheFile(uri, job.getConfiguration());
uri は、hadoop ファイル システム上の mylib.so へのパスです。
このネイティブ ライブラリは、hadoop fs の /hadoop/fs/mystuff/libs にすべて存在する他の多くのライブラリに依存しています。それらをすべて分散キャッシュに追加し、System.loadLibrary() 呼び出しを使用して、reduce タスクにそれらすべてをロードしようとしました。しかし、同じ java.library.path エラーが発生し続けます。ライブラリをコマンドライン引数として -files フラグに追加しようとしましたが、それでも上記のエラーが発生します。