2016-07-29 108 views
0

我已经在ubuntu virtualbox上以独立模式安装spark和hadoop以供我学习。我能够在不使用火花的情况下对hdfs进行正常的hadoop mapreduce操作。但是,当我使用下面的火花shell代码,无法使用ubuntu中的spark shell从HDFS读取文件

val file=sc.textFile("hdfs://localhost:9000/in/file") 
scala>file.count() 

我得到“输入路径不存在。”错误。 core-site.xml具有值为hdfs:// localhost:9000的fs.defaultFS。如果我给了没有端口号的本地主机,我在默认端口8020上听到“连接被拒绝”错误。主机名和本地主机在etc/hosts中设置为环回地址127.0.0.1和127.0.1.1。 请让我知道如何解决这个问题。 在此先感谢!

+0

尝试这种在终端'FS Hadoop的HDFS -ls://本地主机:9000 /中/' 。文件是否可用? – WoodChopper

回答

0

也许你的配置是好的,但文件丢失,或者在一个意想不到的 位置...

1)试:

sc.textFile("hdfs://in/file") 
sc.textFile("hdfs:///user/<USERNAME>/in/file") 

与USERNAME = Hadoop的,还是你自己的用户名

2)的命令行(火花壳的外部上尝试)来访问该目录/文件:

hdfs dfs -ls /in/file 
0

我能够阅读和使用

"hdfs://localhost:9000/user/<user-name>/..." 

谢谢您的帮助写入到HDFS ..