mongodb - 通过 spark-submit 将额外的 jar 传递给 Spark

标签 mongodb hadoop jar apache-spark apache-spark-1.5

我将 Spark 与 MongoDB 结合使用,因此依赖于 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

它有效,但给我以下警告信息

Warning: Local 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 does not exist, skipping.

当我试图让它工作时,如果我在提交作业时遗漏了这些路径,它根本不会运行。但是,现在,如果我省略这些路径,它确实会运行

$SPARK_HOME/bin/spark-submit  my_application.py

有人可以解释一下这里发生了什么吗?我在这里查看了引用相同警告的类似问题,并搜索了文档。

通过设置选项一次,它们是否存储为环境变量或其他东西?我很高兴它有效,但要小心我不完全理解为什么有时而不是其他人。

最佳答案

问题是 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

关于mongodb - 通过 spark-submit 将额外的 jar 传递给 Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961699/

相关文章:

java - Java 中的 MongoDB 聚合框架

javascript - 竞争条件与 bcrypt 的加密计时并添加新的 mongo db 文档

java - 如何对 Reducer 输出进行排序?

hadoop - 如何为存储为文本的 Hive 表中的 NULL 值指定自定义字符串?

ruby-on-rails - MongoDB 中的实时聚合策略

mongodb - f# 使用记录插入 MongoDB

hadoop - 即使将映射器和化简器的数量设置为1,为什么配置单元仍将2个零件文件写入hdfs

java - 我可以动态卸载和重新加载(相同的其他版本)JAR 吗?

java - 将 wsdl 转换为 JAR 文件时出现错误

Java - 通过相对路径加载 dll 并将它们隐藏在 jar 中