2013-07-01 88 views
3

我想在Hadoop集群上运行一个Java程序。这里的命令 -Hadoop的JAR命令 - 设置java.library.path

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/lib/*:/home/rgupta/bdAnalytics/lib/* 
hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub > $logsFldr/subsHdpOMQ_$1.log 2>&1 & 
#java -Djava.library.path=/usr/local/lib -classpath class/:lib/:lib/jzmq-2.1.3.jar bigdat.twitter.queue.TweetOMQSub > log/subsFilterOMQ_$1.log 2>&1 & 

这会引发以下错误 -

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jzmq in java.library.path 

如果我使用上面的Java本机命令,它工作正常。另外,我试图测试它的hadoop节点在/ usr/local/lib目录下有必要的jzmq jar。有没有一种方法可以将java.library.path设置为Hadoop JAR命令。 请建议我如何解决这个问题。

回答

1

对不起误解你的问题使编辑:

,你应该能够使用libjars选项

你的情况:

HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/lib/:/home/rgupta/bdAnalytics/lib/ 

hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub -libjars /usr/local/lib ... 
+0

谢谢!我刚刚尝试过,但没有运气!我仍然得到相同的例外 – user2508012

1

尝试export HADOOP_OPTS=$HADOOP_OPTS -Djava.library.path=/usr/local/lib

和出口等罐子通常的做法是在执行作业前使用HADOOP_CLASSPATH

希望这会有所帮助。

+0

这也没有工作。我仍然得到相同的答案 - – user2508012

+0

嘿现在检查它,我有一个小错字,我错过了$ HADOOP_OPTS之前 –