1

私はMongoDBでSparkを使用しているため、mongo-hadoopドライバーに依存しています。元の質問hereに入力したおかげで、うまくいきました。

Spark ジョブは実行中ですが、理解できない警告が表示されます。このコマンドを実行すると

$SPARK_HOME/bin/spark-submit --driver-class-path /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar --jars /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar my_application.py

動作しますが、次の警告メッセージが表示されます

警告: ローカル jar /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo- hadoop-spark-1.5.0-SNAPSHOT.jar が存在しないため、スキップします。

これを機能させようとしたときに、ジョブを送信するときにこれらのパスを省略した場合、ジョブはまったく実行されませんでした。ただし、これらのパスを省略すると、実行されます

$SPARK_HOME/bin/spark-submit  my_application.py

誰かがここで何が起こっているのか説明してもらえますか? ここで同じ警告を参照して同様の質問を調べ、ドキュメントを検索しました。

オプションを一度設定すると、環境変数などとして保存されますか? 私はそれが機能することをうれしく思いますが、他の理由ではなく、時々理由を完全に理解していないことに注意してください.

4

2 に答える 2

2

問題は、CLASSPATHコロンで区切るJARS必要がありますが、コンマで区切る必要があることです:

$SPARK_HOME/bin/spark-submit \
--driver-class-path /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar \
--jars /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar,/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar my_application.py
于 2015-11-28T00:27:19.603 に答える
1

Zero323 回答の上に追加

これを行うより良い方法は

$SPARK_HOME/bin/spark-submit \
--driver-class-path  $(echo /usr/local/share/mongo-hadoop/build/libs/*.jar | tr ' ' ',') \
--jars $(echo /usr/local/share/mongo-hadoop/build/libs/*.jar | tr ' ' ',') my_application.py

このアプローチでは、クラスパスで誤って jar を見逃すことがないため、警告は表示されません。

于 2016-04-30T16:07:10.940 に答える