火花工作时间随着迭代次数的增加而成比例地增加

时间:2018-08-09 13:11:28

标签: apache-spark

我们已经在带有scala的spark中实现了Oracle程序,该程序可以满足游标功能。

我们用于 POC的群集配置为

2个节点群集,每个节点8 GB RAM,每个节点4 CPU内核

POC : 我们正在具有4g驱动程序内存的Spark Standalone集群上运行spark作业。

为了优化代码,我们设置了以下配置:

spark.sql("set hive.vectorized.execution.enabled = true");
spark.sql("set hive.vectorized.execution.reduce.enabled = true");

spark.sql("set spark.scheduler.mode=FAIR");

/* Join queries on hive tables that are stored in ORC format having     partitioning and bucketing.At HIVE end we have execution engine as spark             ***/

df1= spark.sql("select * from hive_tables");

/* Persisted the Dataframe */

val df=df1.repartition(6).persist(MEMORY_AND_DISK_SER); 

df.take(500).par.foreach{

/* Using Scala functions(agg,filter,take,first,na.fill,...) performed 
opeartions on persisted or cached Dataframes and finally inserted into 
hive table*/
df_2.write.insertInto(hivetable);

}

对于500次迭代,它花费了8分钟,而当我们尝试进行600000次迭代时,时间与迭代次数成正比。

所以,请向我们建议如何改善代码的性能。

先谢谢了。

0 个答案:

没有答案