【问题标题】:Unable to copy files from local disk to HDFS无法将文件从本地磁盘复制到 HDFS
【发布时间】:2015-12-08 01:06:46
【问题描述】:

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

输入 jps 命令后,我发现输出如下

4135 jps
2582 SeconadaryNameNode
3143 NodeManager
2394 Namenode
2391 Datanode
3021 ResourceManager

现在我想运行 wordcount 示例。

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

现在每当我尝试按照此命令将其复制到 hadoop hdfs 时

hdfs -copyFromLocal /app/hadoop/tmp/input.txt /wordcount/input.txt

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

但它显示

unrecognised option: -copyFromLocal
could not create the java virtual machine 

我做错了什么?

【问题讨论】:

  • 您缺少 hdfs 命令参数 (dfs)。试试 $ hdfs dfs -copyFromLocal
  • 这不是字数问题。我更改了您问题的标题。

标签: ubuntu hadoop mapreduce hdfs word-count


【解决方案1】:

您使用的命令是旧的。试试吧,

hadoop fs -mkdir -p /wordcount/input
hadoop fs -put /app/hadoop/tmp/input.txt /wordcount/input/input.txt

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

hadoop fs -rm -R /wordcount/output

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

hadoop fs -ls /wordcount/output

要在控制台上查看输出,请使用:

hadoop fs -cat /wordcount/output/part*

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

hdfs dfs <your_command_here>

例如,

hdfs dfs -ls /

另外,如果你想读取gzip文件,你可以使用这个,

hdfs dfs -cat /wordcount/output/part* | gzip -d -u

【讨论】:

  • 现在如何使用以下命令运行它 hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-xamples-..* jar wordcount 输入输出但显示错误
  • k 在分别用 wordcount/input 和 wordcount/output 替换输入和输出后它工作了,但是我如何访问输出意味着它将在哪里显示单词出现的总数
  • 更新了您的疑问的答案。
  • thnx 如何编写自己的代码来分析hadoop中的2GB数据
  • 该技术与数据量无关。这就是 MapReduce 的美妙之处。适用于 MB 的代码适用于 PB 的数据。算法取决于您的问题。
【解决方案2】:

你忘了dfs

hdfs dfs -copyFromLocal /blar /blar

IMO Scalding 是开始编写 MapReduce 程序的最佳工具。它像 Pig 一样简洁,但像 Java 一样灵活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2019-11-21
    • 2020-11-27
    相关资源
    最近更新 更多