首页 > 解决方案 > 在 hadoop 中使用 cat 命令时没有这样的文件或目录

问题描述

我在一个目录中有两个文件,一个名为 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 已启动并正在运行,因此不完全确定如何解决此问题。有什么建议么?

标签: pythonhadoopcommand-lineterminal

解决方案


hadoop fs命令默认从您的 HDFS 用户文件夹中读取。

您需要首先hadoop fs -put README.md,或者如果您的意思cat是本地文件(如您所说,您有“一个目录中有两个文件,一个称为 word_mapper.py 另一个称为 README.md ”),然后hadoop fs -从您的命令中删除,因为您的本地目录文件所在且 Python 代码正在运行的位置不是 HDFS

如果您真的想使用 Python 来运行映射器,那么我建议您查看mrjob,但使用 PySpark 可能会更好,因为 MapReduce 没有被广泛使用


推荐阅读