2017-01-09 51 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配置。

希望这可以澄清你的疑问!