System.setProperty("user.name","root")
val spark = new SparkContext("spark://miluo1:7077", "Spark Pi", "/usr/spark-1.3.1")
spark.addJar("C:\\Users\\root\\Desktop/io.jar")
val sc=spark.textFile("file:/root/2txt")
var sss= sc.first()
println(sss)
spark.stop()
上面是代碼,我是在Windows下eclipse(帶scala插件)里直接運行的。 算是遠程提交吧。但是讀取不到檔案。。如果是把spark://miluo1:7077 換成 local (本地模式)則沒有問題。
下面是錯誤:
1. eclipse里的報錯:
15/04/29 10:45:59 INFO SparkContext: Created broadcast 0 from textFile at SparkJava.java:21
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/root/2txt
at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:285)
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:228)
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:313)
at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:203)
2.日志報錯(work節點上的)
15/04/29 10:23:49 ERROR FileAppender: Error writing stream to file /usr/spark-1.3.1/work/app-20150429102347-0046/0/st
derrjava.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:272)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.apache.spark.util.logging.FileAppender.appendStreamToFile(FileAppender.scala:70)
at org.apache.spark.util.logging.FileAppender$$anon$1$$anonfun$run$1.apply$mcV$sp(FileAppender.scala:39)
at org.apache.spark.util.logging.FileAppender$$anon$1$$anonfun$run$1.apply(FileAppender.scala:39)
at org.apache.spark.util.logging.FileAppender$$anon$1$$anonfun$run$1.apply(FileAppender.scala:39)
at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1618)
at org.apache.spark.util.logging.FileAppender$$anon$1.run(FileAppender.scala:38)
15/04/29 10:23:49 INFO Worker: Executor app-20150429102347-0046/0 finished with state KILLED exitStatus 143
15/04/29 10:23:49 INFO Worker: Cleaning up local directories for application app-20150429102347-0046
有沒大神做過遠程提交的。。。我之前做好了hadoop的遠程作業提交和web專案整合。。。希望大家多多指點下
uj5u.com熱心網友回復:
檢查下你的spark的埠是不是7077 應該你的spark配的不是這個埠 你看下組態檔 我遇到過這樣的問題 是因為spark埠寫錯了uj5u.com熱心網友回復:
能讀到就見鬼了,你把file:/root/2txt 的檔案復制到每個work節點uj5u.com熱心網友回復:
請問這個問題你后來解決了嗎?我也遇到了這個問題。uj5u.com熱心網友回復:
我后來發現了,textFile應該是讀的本地的檔案,也就是你windows上的檔案,然后提交到集群,而不是提交到集群,集群再去各個節點那個路徑下讀取檔案。uj5u.com熱心網友回復:
你好,我想請問下在 window 下 eclipse除錯spark需要在本機安裝哪些東西,我在本地除錯各種問題。
uj5u.com熱心網友回復:
你可以把本地檔案傳到hdfs上,然后讀取hdfs上的檔案,uj5u.com熱心網友回復:
兄弟,windows下的檔案系統的路徑不應該是你那樣的,應該是file:///D:/demo.txt或是/D:/demo.txtuj5u.com熱心網友回復:
如果你是local下運行,檔案應該是在windows里,那么遵循windows下的檔案路徑,如果提交到集群,那么就是linux檔案路徑,同時你只textFile的話,前提是你每個worker都有這個檔案,否則你需要先addFile(filePath),然后用SparkFiles.get(filePath)取得檔案,addFile會讓worker臨時保存你add的檔案uj5u.com熱心網友回復:
找不到檔案 你提交了他讀取的是spark集群的檔案系統轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/47538.html
標籤:Spark
上一篇:countAndSay
