【发布时间】:2018-03-24 05:56:11
【问题描述】:
我在 REPL 的 EMR 主服务器上运行火花管功能只是为了测试管道功能。我正在使用以下示例
https://stackoverflow.com/a/32978183/8876462
http://blog.madhukaraphatak.com/pipe-in-spark/
http://hadoop-makeitsimple.blogspot.com/2016/05/pipe-in-spark.html
这是我的代码::
import org.apache.spark._
val distScript = "/home/hadoop/PipeEx.sh"
val distScriptName = "PipeEx.sh"
sc.addFile(distScript)
val ipData =
sc.parallelize(List("asd","xyz","zxcz","sdfsfd","Ssdfd","Sdfsf"))
val opData = ipData.pipe(SparkFiles.get(distScriptName))
opData.foreach(println)
我尝试了不同的方法,例如使文件可执行,按照另一篇文章中的建议放置在 /usr/lib/spark/bin 中的文件中。我把 distScript 改成说
"file:///home/hadoop/PipeEx.sh"
我总是在tmp/spark*/userFiles* 位置找不到这样的文件或目录。我试图从 tmp 位置访问和运行 shell 程序,它运行良好。
我的shell脚本和http://blog.madhukaraphatak.com/pipe-in-spark/一样
这是日志的第一部分::
[Stage 9:> (0 + 2)
/ 2]18/03/19 19:58:22 WARN TaskSetManager: Lost task 1.0 in stage 9.0 (TID
72, ip-172-31-42-11.ec2.internal, executor 9): java.io.IOException: Cannot
run program "/mnt/tmp/spark-bdd582ec-a5ac-4bb1-874e-832cd5427b18/userFiles-
497f6051-6f49-4268-b9c5-a28c2ad5edc6/PipeEx.sh": error=2, No such file or
directory
有人知道吗?我正在使用 Spark 2.2.1 和 scala 2.11.8
谢谢
【问题讨论】:
标签: scala apache-spark pipe