我的HortonWorks HDP 2.3_1 VirtualBox VM中有一个HDFS文件 .

如果我进入客户端spark-shell并因此引用该文件,它可以正常工作

val words = sc.textFile(“hdfs:///tmp/people.txt”)words.count

但是,如果我尝试从Windows主机上的本地Spark应用程序访问它,它将无法正常工作

val conf = new SparkConf().setMaster("local").setAppName("My App") 
  val sc = new SparkContext(conf) 

  val words=sc.textFile("hdfs://localhost:8020/tmp/people.txt") 
  words.count

发射

线程“main”中的异常org.apache.spark.SparkException:作业因阶段失败而中止:阶段0.0中的任务0失败1次,最近失败:阶段0.0中丢失的任务0.0(TID 0,localhost):org.apache .hadoop.hdfs.BlockMissingException:无法获取块:BP-452094660-10.0.2.15-1437494483194:blk_1073742905_2098 file = / tmp / people.txt at org.apache.hadoop.hdfs.DFSInputStream.chooseDataNode(DFSInputStream.java:838)在org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:526)

端口8020是打开的,如果我选择了错误的文件名,它会告诉我

Input path does not exist: hdfs://localhost:8020/tmp/people.txt!!

localhost:8020应该是正确的客户HDP VM帽子NAT端口隧道到我的主机Windows框 .

我告诉我,如果我给它错误的名字,我得到一个适当的例外

我的pom有

<dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_2.11</artifactId>
                <version>1.4.1</version>
                <scope>provided</scope>
        </dependency>

难道我做错了什么?什么是BlockMissingException试图告诉我?