我使用spark-submit命令在32核,64 GB服务器上运行pyspark应用程序。
申请中的步骤:
df1 =从csv文件(field1,field2,field3,field4)加载500万个数据集。
df2 =从mongodb加载5亿条目(使用spark mongo适配器)(field1,field2,field3)。
左连接操作(抛出异常java.lang.OutOfMemoryError:Java堆空间):
df_output = df1.join(df2, [“field1”,“field2”,“field3”], “left_outer”)。选择( “*”)
使用带附加模式的df_output更新mongo集合。
conf / spark-env.sh中的配置:
并且有更多参数设置为默认值。
使用命令设置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 &
调整配置参数以获得此数据集的最佳性能的最佳方法应该是什么?我们应该如何为任何数据集配置上述参数?