如何获得在Windows上访问本地HDFS的火花?

时间:2016-12-22 07:34:09

标签: hadoop apache-spark hdfs

我在Windows机器上本地安装了hadoop和spark。

我可以访问hadoop中的HDFS文件,例如

hdfs dfs -tail hdfs:/out/part-r-00000

按预期工作。但是,如果我尝试从spark shell访问同一个文件,例如

val f = sc.textFile("hdfs:/out/part-r-00000")

我收到文件不存在的错误。但是,Spark可以使用file:/ ...语法访问Windows文件系统中的文件。

我已将HADOOP_HOME环境变量设置为c:\ hadoop,这是包含hadoop安装的文件夹(特别是winutils.exe,它似乎是spark所必需的,位于c:\ hadoop \ bin中)。

因为似乎HDFS数据存储在c:\ tmp文件夹中,所以我想知道是否有办法让火花知道这个位置。

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您的文件不存在,则表示您的spark应用程序(代码段)能够连接到HDFS。 您使用的HDFS文件路径似乎有误。

这可以解决您的问题

val f = sc.textFile("hdfs://localhost:8020/out/part-r-00000")