3

我正在尝试在 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 本机命令,它可以正常工作。此外,我试图测试它的 hadoop 节点在 /usr/local/lib 目录下确实有必要的 jzmq jars。有没有办法可以将 java.library.path 设置为 Hadoop JAR 命令。请建议我该如何解决这个问题。

4

2 回答 2

1

抱歉误读了您的问题,因此编辑:

你应该可以使用libjars选项

在你的情况下:

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

hadoop jar $jarpath bigdat.twitter.queue.TweetOMQSub -libjars /usr/local/lib ...
于 2013-07-01T18:35:59.823 回答
1

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

并在运行作业之前以通常的方式导出其他 jar - 使用 HADOOP_CLASSPATH

希望这可以帮助。

于 2013-07-01T20:34:30.073 回答