后续运行后,Spark作业在本地运行时间更长 - 调整spark工作

时间:2017-07-28 04:14:13

标签: scala apache-spark apache-spark-sql spark-streaming spark-dataframe

我有一个火花工作,在第一次初始运行时运行5分钟,然后需要几分钟......后续运行时超过20-30。我正在阅读一个镶木地板文件,然后创建数据框并以.json格式编写。我没有在代码中的任何地方使用cache(),persist()或unpersist()。 这是本地实例。 可能是什么问题 ?

配置参数

   val spark = SparkSession
  .builder()
  .appName("example")
  .config("spark.sql.warehouse.dir", warehouseLocation)
  .config("spark.master", "local")
  .config("spark.serializer", 
  "org.apache.spark.serializer.KryoSerializer")
  .getOrCreate()

   //set new runtime options
   spark.conf.set("spark.sql.shuffle.partitions", 14)
   spark.conf.set("spark.executor.memory", "6g")
   spark.conf.set("spark.driver.host", "localhost")
   spark.conf.set("spark.cores.max", "8")
   spark.conf.set("spark.eventLog.enabled", true)

   spark.sparkContext.setCheckpointDir("somedirectorypath")
   spark.sparkContext.setLogLevel("WARN") 

1 个答案:

答案 0 :(得分:0)

如果您在“追加”模式下编写镶木地板,则第一次写入将优化为直接写入该位置。 “覆盖”模式也是如此。后续写入使用ParquetOutputCommitter,它将首先写入临时位置,然后将文件复制到目标目录。