【发布时间】:2018-09-15 19:54:27
【问题描述】:
我在 pyspark 和 mongoDB 之间建立简单的“hello world”连接时遇到了麻烦(请参阅我试图模拟 https://github.com/mongodb/mongo-hadoop/tree/master/spark/src/main/python 的示例)。有人可以帮我理解并解决这个问题吗?
详情:
我可以用下面看到的--jars --conf --py-files成功运行pyspark shell,然后导入pymongo_spark,最后连接到数据库;但是,当我尝试打印“hello world”时,python 由于permission denied '/home/ .cache' 问题而无法提取文件。我不认为我们的环境设置是正确的,我不知道如何解决这个问题......
(见附件错误文件截图)
我的分析:不清楚这是 Spark/HDFS、pymongo_spark 还是 pySpark 问题。 Spark 或 PyMongo_spark 似乎默认为每个节点 /home .cache
这是我的 pyspark 环境:
pyspark --jars mongo-hadoop-spark-1.5.2.jar,mongodb-driver-3.6.3.jar,mongo-java-driver-3.6.3.jar --driver-class-path mongo-java -driver-3.6.3.jar,mongo-hadoop-spark-1.5.2.jar,mongodb-driver-3.6.3.jar --master yarn-client --conf "spark.mongodb.input.uri=mongodb: 127.0.0.1/test.coll?readPreference=primaryPreferred","spark.mongodb.output.uri=mongodb://127.0.0.1/test.coll" --py-files pymongo_spark.py
在 1:import pymongo_spark
在 2:pymongo_spark.activate()
在3:mongo_rdd
=sc.mongoRDD('mongodb://xx.xxx.xxx.xx:27017/test.restaurantssss')
在 4 中:print(mongo_rdd.first())
【问题讨论】:
-
你能添加堆栈跟踪的底部吗?似乎没有设置该路径的配置,也许查看类源会给出提示......
-
嗨欧内斯特,现在发布它
-
再次感谢欧内斯特 - 我发布了堆栈跟踪的其余部分(错误消息..)这有帮助吗?该消息重复了很多次 - 我只是抓住了前两个重复项......请让我知道你的想法或者如果你需要更多信息......
-
我在堆栈跟踪中看到一条清晰的消息:通过将
PYTHON_EGG_CACHE环境变量设置为指向可访问变量,将您的 EGG 缓存更改为指向不同的目录。你能在你的集群节点上试试这个吗?
标签: mongodb apache-spark hadoop pyspark