1

I'm trying to get the JZMQ code working on ONE of the nodes on Hadoop Cluster. I have necessary native jmzq library files installed under - /usr/local/lib directory on that node.

Here's the list - 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

In my shell script if I run the Java command below, it works absolutely fine -

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

But when I run the below command, it throws Exception in thread "main"

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

hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub

I explicitly set the necessary files/Jars in Hadoop Classpath, Opts etc, using Export command

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/

The source code JAR and jzmq-2.1.3.jar files are present under /home/txtUser/analytics/lib/ folder on Hadoop node. Also, the /usr/local/lib is added onto the system ld.conf

Can anyone suggest, given inputs on what I may be doing wrong here?

user2508012
  • 43
  • 1
  • 3
  • 5

1 Answers1

4

Add following line to /etc/profile or .bashrc:

export JAVA_LIBRARY_PATH=/usr/local/lib  

Reload /etc/profile or .bashrc.

Frxstrem
  • 38,761
  • 9
  • 79
  • 119
Sarath P R
  • 51
  • 3