在一个目录中有两个文件,一个名为word_mapper.py,另一个名为README.md。我试图用hadoop使用这些文件,但是当我运行命令hadoop fs -cat README.md | python3 word_mapper.py
时,我从我的终端得到以下响应:
2021-02-12 14:13:55,862 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
cat: `README.md': No such file or directory
Hadoop已经启动并运行,所以不确定如何解决这个问题。有什么建议吗?
hadoop fs
命令默认从HDFS用户文件夹读取。
您需要首先hadoop fs -put README.md
,或者如果您打算cat
本地文件(正如您所说的,您在一个目录中有两个文件,一个名为word_mapper.py,另一个名为README.md"),然后从命令中删除hadoop fs -
,因为文件所在的本地目录和Python代码正在运行,不是HDFS
如果你真的想用Python来运行一个映射器,那么我建议看看mrjob
,但可能最好使用PySpark,因为MapReduce没有被广泛使用