我正在尝试在Hadoop集群上运行java程序。这是命令 -
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 native命令,它可以正常工作。另外,我试图测试它的hadoop节点,在/ usr / local / lib目录下有必要的jzmq jar。有没有办法我可以将java.library.path设置为Hadoop JAR命令。 请建议我该如何解决这个问题。
答案 0 :(得分:1)
抱歉误读了你的问题所以编辑:
您应该可以使用libjars选项
在你的情况下:
HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/lib/:/home/rgupta/bdAnalytics/lib/
hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub -libjars /usr/local/lib ...
答案 1 :(得分:1)
尝试export HADOOP_OPTS=$HADOOP_OPTS -Djava.library.path=/usr/local/lib
并在运行作业之前以通常的方式导出其他罐子 - 使用HADOOP_CLASSPATH
希望这有帮助。