我有一個PySpark腳本,可以從MongoDB數據庫讀取集合。當我在獨立模式下運行腳本時,它的工作原理是: MONGO_URL = "mongodb://USER:PASSWORD@HOST:27017/DB_NAME.COLLECTION" spark = SparkSession.builder \ .appName('TestMongoLoad') \ .config('spark.mongodb.input.uri', MONGO_URL) \ .getOrCreate() df = spark.read.format("com.mongodb.spark.sql.DefaultSource").load()spark-submit \--master local[*] \--packages org.mongodb.spark:mongo-spark-connector_2.11:2.4.1 \load_from_mongo.py [SUCCESS]當我在群集上運行腳本時,它失敗了:spark-submit \--master yarn \--deploy-mode client \--driver-memory 4g \--executor-memory 2g \--executor-cores 3 \--num-executors 10 \--packages org.mongodb.spark:mongo-spark-connector_2.11:2.4.1 \load_from_mongo.py
1 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
正確的答案是,集群的名稱(主)節點具有對MongoDB實例的防火墻訪問權限,但集群中的其他節點沒有。因此,顯然MongoDB查詢也分布在集群上。一旦我將從屬節點添加到MongoDB服務器的安全組作為允許的傳入連接,集群模式處理就開始工作了。
添加回答
舉報
0/150
提交
取消