无法将文件从本地磁盘复制到HDFS

use*_*291 2 ubuntu hadoop mapreduce word-count hdfs

我已经成功安装了ubuntu 12.04和hadoop 2.4.0.

输入jps命令后,我找到如下输出

4135 jps
2582 SeconadaryNameNode
3143 NodeManager
2394 Namenode
2391 Datanode
3021 ResourceManager
Run Code Online (Sandbox Code Playgroud)

现在我想运行wordcount示例.

我创建了一个包含一些内容的.txt文件

现在每当我尝试通过遵循此命令将其复制到hadoop hdfs时

hdfs -copyFromLocal /app/hadoop/tmp/input.txt /wordcount/input.txt
Run Code Online (Sandbox Code Playgroud)

(路径中的"wordcount"是我创建的目录)

但它表明

unrecognised option: -copyFromLocal
could not create the java virtual machine 
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

aa8*_*a8y 9

您使用的命令是较旧的命令.尝试,

hadoop fs -mkdir -p /wordcount/input
hadoop fs -put /app/hadoop/tmp/input.txt /wordcount/input/input.txt
Run Code Online (Sandbox Code Playgroud)

/wordcount/output在这种情况下,您需要指定输出目录,并且在运行作业之前它不应该存在.如果是这样,作业将失败.所以你可以删除目录,

hadoop fs -rm -R /wordcount/output
Run Code Online (Sandbox Code Playgroud)

编辑:要查看输出文件,请检查:

hadoop fs -ls /wordcount/output
Run Code Online (Sandbox Code Playgroud)

要在控制台上查看输出,请使用以下命令:

hadoop fs -cat /wordcount/output/part*
Run Code Online (Sandbox Code Playgroud)

编辑2:较新的Hadoop CLI使用:

hdfs dfs <your_command_here>
Run Code Online (Sandbox Code Playgroud)

例如,

hdfs dfs -ls /
Run Code Online (Sandbox Code Playgroud)

此外,如果你想读取gzip文件,你可以使用它,

hdfs dfs -cat /wordcount/output/part* | gzip -d -u
Run Code Online (Sandbox Code Playgroud)