1. 程式人生 > >Spark save result to Local file System but only SUCCESS

Spark save result to Local file System but only SUCCESS

執行如下程式碼,把結果儲存到本地檔案系統而不是HDFS上,但是結果中只有success檔案沒有內容檔案

 val data1  =sc.parallelize(Array(("a",1),("b",1),("c",1),("d",1)))
        .map(x=>x._1 + x._2.toString)
          .repartition(1)

data1.saveAsTextFile("file:///home/work/wangdaopeng/fortest1")

本地結果:
在這裡插入圖片描述
執行指令碼如下:

cluster="zjyprc-hadoop"
executors="100"
queue="root.production.miui_group.miui_ad.queue_1"
master="yarn"

/home/work/wangdaopeng/tools/infra-client/bin/spark-shell \
 --cluster $cluster \
 --conf spark.yarn.job.owners=wangdaopeng \
 --master $master \
 --queue $queue \
 --num-executors $executors \
 --driver-memory 4g \
 --conf spark.driver.maxResultSize=3g \

將master改為local後,結果正常,本地檔案系統裡存入結果

cluster="zjyprc-hadoop"
executors="100"
queue="root.production.miui_group.miui_ad.queue_1"
master="local[*]"

/home/work/wangdaopeng/tools/infra-client/bin/spark-shell \
 --cluster $cluster \
 --conf spark.yarn.job.owners=wangdaopeng \
 --master $master \
 --queue $queue \
 --num-executors $executors \
 --driver-memory 4g \
 --conf spark.driver.maxResultSize=3g \

結論:
儲存到本地檔案系統(file:///)只有再local模式下才能生效,再cluster模式下(不論是yarn-client還是yarn-cluster)都無法使用