1

Hadoop クラスタのノードの 1 つで JZMQ コードを動作させようとしています。そのノードの /usr/local/lib ディレクトリの下に、必要なネイティブ jmzq ライブラリ ファイルがインストールされています。

ここにリストがあります - libjzmq.a libjzmq.la libjzmq.so libjzmq.so.0 libjzmq.so.0.0.0 libzmq.a libzmq.la libzmq.so libzmq.so.3 libzmq.so.3.0.0 pkgconfig

私のシェル スクリプトで、以下の Java コマンドを実行すると、まったく問題なく動作します -

java -Djava.library.path=/usr/local/lib -classpath  class/:lib/:lib/jzmq-2.1.3.jar  bigdat.twitter.queue.TweetOMQSub 

しかし、以下のコマンドを実行すると、スレッド「メイン」で例外がスローされます

java.lang.UnsatisfiedLinkError: no jzmq in java.library.path

hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub

Export コマンドを使用して、Hadoop Classpath、Opts などに必要なファイル/Jar を明示的に設定します。

export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/lib/"
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/txtUser/analytics/lib/*
export JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:/usr/lib/hadoop/lib/native/:/usr/local/lib/

ソース コード JAR および jzmq-2.1.3.jar ファイルは、Hadoop ノードの /home/txtUser/analytics/lib/ フォルダーの下にあります。また、/usr/local/lib がシステム ld.conf に追加されます。

ここで私が間違っているかもしれないことについての情報を与えられて、誰かが提案できますか?

4

1 に答える 1

4

/etc/profileまたはに次の行を追加します.bashrc

export JAVA_LIBRARY_PATH=/usr/local/lib  

リロード/etc/profileまたは.bashrc.

于 2013-07-06T06:00:17.253 に答える