1

我试图让 JZMQ 代码在 Hadoop 集群上的一个节点上运行。我在该节点的 /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

在我的 shell 脚本中,如果我运行下面的 Java 命令,它绝对可以正常工作 -

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

但是当我运行下面的命令时,它会在线程“main”中抛出异常

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

hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub

我使用 Export 命令在 Hadoop Classpath、Opts 等中明确设置了必要的文件/Jars

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/profileor .bashrc

export JAVA_LIBRARY_PATH=/usr/local/lib  

重新加载/etc/profile.bashrc.

于 2013-07-06T06:00:17.253 回答