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项目整合希望大家多多指点下

解决方案 »

  1.   

    检查下你的spark的端口是不是7077  应该你的spark配的不是这个端口 你看下配置文件   我遇到过这样的问题 是因为spark端口写错了
      

  2.   

    能读到就见鬼了,你把file:/root/2txt 的文件复制到每个work节点
      

  3.   

    我后来发现了,textFile应该是读的本地的文件,也就是你windows上的文件,然后提交到集群,而不是提交到集群,集群再去各个节点那个路径下读取文件。
      

  4.   

    你好,我想请问下在 window 下 eclipse调试spark需要在本机安装哪些东西,我在本地调试各种问题。
      

  5.   

    你可以把本地文件传到hdfs上,然后读取hdfs上的文件,
      

  6.   

    兄弟,windows下的文件系统的路径不应该是你那样的,应该是file:///D:/demo.txt或是/D:/demo.txt
      

  7.   

    如果你是local下运行,文件应该是在windows里,那么遵循windows下的文件路径,如果提交到集群,那么就是linux文件路径,同时你只textFile的话,前提是你每个worker都有这个文件,否则你需要先addFile(filePath),然后用SparkFiles.get(filePath)取得文件,addFile会让worker临时保存你add的文件
      

  8.   

    找不到文件 你提交了他读取的是spark集群的文件系统