Hadoop和JZMQ - java.library.path中没有jzmq

时间:2013-07-03 17:53:46

标签: hadoop jzmq java.library.path

我正在尝试让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

任何人都可以建议,考虑到我在这里做错了什么?

1 个答案:

答案 0 :(得分:4)

将以下行添加到/etc/profile.bashrc

export JAVA_LIBRARY_PATH=/usr/local/lib  

重新加载/etc/profile.bashrc