2016-07-29 109 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 ..