2017-01-09 84 views
0

我在Cloudera平臺上運行Spark中的scala和Java代碼,其簡單任務是對HDFS中的文件執行Word計數。我的問題是:什麼是閱讀文件與此代碼段的區別 -Cloudera Hadoop:在HDFS中讀取/寫入文件

sc.textFile( 「HDFS://quickstart.cloudera:8020 /用戶/火花/ INPUTFILE/inputText.txt」)

而不是從本地驅動器讀取cloudera平臺?

sc.textFile(「/家/ Cloudera公司/ INPUTFILE/inputText.txt」)

這難道不是在這兩種情況下的文件使用HDFS保存,不會做出任何區別讀/寫兩種方式?這些都可以讀/寫HDFS,對嗎?我提到這個線程,但沒有線索。 Cloudera Quickstart VM illegalArguementException: Wrong FS: hdfs: expected: file:

請告訴我至少有一個使用hdfs://暗示別的東西的情況嗎?

謝謝!

回答

0

按我的知識,

  • sc.textFile("hdfs://quickstart.cloudera:8020/user/spark/InputFile/inputText.txt")在這一行HDFS://quickstart.cloudera:8020指的是HDFS目錄或文件/user/spark/InputFile/inputText.txt。
  • sc.textFile("/home/cloudera/InputFile/inputText.txt")這一行'/home/cloudera/InputFile/inputText.txt'是指你的本地unix/linux文件系統。

所以,如果你想使用/讀/寫入HDFS文件,那麼你需要使用hdfs:// namenodeHost:端口按照hadoop配置。

希望這可以澄清你的疑問!