【发布时间】:2017-02-23 19:59:55
【问题描述】:
我正在使用 spark-submit 命令在 32 核、64 GB 服务器上运行 pyspark 应用程序。
申请步骤:
df1 = 从 csv 文件(field1、field2、field3、field4)加载 5 亿数据集。
df2 = 从 mongodb 加载 5 亿个条目(使用 spark mongo 适配器)(field1, field2, field3)。
-
Left Join 操作(step throwing exception java.lang.OutOfMemoryError: Java heap space):
df_output = df1.join(df2, ["field1", "field2", "field3"], "left_outer").select("*")
使用带有附加模式的 df_output 更新 mongo 集合。
conf/spark-env.sh 中的配置:
- SPARK_EXECUTOR_INSTANCES=10
- SPARK_EXECUTOR_CORES=3
- SPARK_EXECUTOR_MEMORY=5GB
- SPARK_WORKER_CORES=30
- SPARK_WORKER_MEMORY=50GB
还有更多参数设置为默认值。
使用命令设置 master 和 1 个 worker。
sbin/start-master.sh/sbin/start-slave.sh master_ip
使用命令运行脚本
nohup bin/spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:2.0.0 --master master_ip ../test_scripts/test1.py > /logs/logs.out &
调整配置参数以优化此数据集的性能的最佳方法应该是什么,以及我们应该如何为任何数据集配置上述参数?
【问题讨论】:
标签: apache-spark pyspark