我在Cloudera平台上的Spark中运行了这个scala和Java代码,其简单的任务是对HDFS中的文件执行Word计数 . 我的问题是:使用此代码片段读取文件有何不同 -
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://暗示其他东西?
谢谢!
1 回答
据我所知,
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文件,则需要根据hadoop配置使用hdfs:// namenodeHost:port .
希望这能澄清你的疑问!