./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'执行成功后,cat ./output/*显示没有那个文件或目录
时间: 2023-10-30 19:05:29 浏览: 134
这种情况可能是因为没有正确指定输入路径和输出路径导致的。请确认以下几点:
1. 输入路径是正确的,包含需要处理的文件。可以使用命令 `hadoop fs -ls <input_path>` 来检查输入路径是否存在文件。
2. 输出路径是正确的,并且不存在。如果输出路径已经存在,作业将无法运行。可以使用命令 `hadoop fs -rm -r <output_path>` 来删除输出路径。
3. 检查命令是否正确输入。可以再次运行命令,并确保输入路径和输出路径正确,以及正则表达式是否正确。
如果以上步骤都没有解决问题,可以查看作业日志以获取更多信息,使用命令 `yarn logs -applicationId <application_id>` 或者在Web UI上查看作业日志。
相关问题
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'解释一下
这是一个在Hadoop上运行的示例MapReduce作业,它的作用是在输入文件集中查找以“dfs”开头并以小写字母或句点结尾的单词,并将它们的出现次数输出到输出目录中。
具体解释如下:
- `./bin/hadoop`: 启动Hadoop集群的命令。
- `jar`: 这是Java的一个命令,表示要运行一个jar包。
- `./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar`: 这是要运行的MapReduce作业的jar包路径,它包含了Hadoop集群上运行MapReduce作业所需的所有类和依赖项。
- `grep`: 这是要运行的MapReduce作业的类名。
- `./input`: 输入文件所在的目录。
- `./output`: 输出目录,MapReduce作业输出的结果将写入该目录。
- `'dfs[a-z.] '`: 这是一个正则表达式,用于匹配以“dfs”开头并以小写字母或句点结尾的单词。注意,正则表达式被引号括起来,以防止Shell解释它们。
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output '乔峰'没有那个文件和目录
这个命令是在 Hadoop 上运行一个 MapReduce 作业,用于在输入目录中查找包含“乔峰”字符串的文件,并将结果输出到输出目录中。但是,由于输入目录不存在,所以会出现“没有那个文件和目录”的错误。
要解决这个问题,需要确保输入目录存在并且包含要查找的文件。可以使用以下命令创建输入目录并将文件复制到该目录中:
```
hadoop fs -mkdir input
hadoop fs -put <path_to_file> input/
```
其中 `<path_to_file>` 是要查找的文件的路径。