如何从终端上传文件到hdfs网页?

问题描述

我刚开始使用 hadoop 并进行 hdfs 配置。我已完成所有步骤,但上传文件的最后一部分不起作用。

我用它来制作我的目录,它有效

    hadoop fs -mkdir /user/syed

但是当我这样做时:

    hadoop fs -copyFromLocal /home/syed/hadoopMR/input input

    hadoop fs -copyFromLocal /home/syed/hadoopMR/input input

    hadoop fs -copyFromLocal /home/syed/hadoopMR/input/file.txt user/syed/input

    hadoop fs -copyFromLocal /home/syed/hadoopMR/input/file.txt input

    hdfs dfs -put /home/syed/hadoopMR/input/file.txt input

它只创建一个空的“输入”目录,当我指定“file.txt”时它什么也没给出。

显示在终端上:

copyFromLocal: File /user/syed/input/input/fileA.txt.copYING 只能写入 1 minReplication 节点中的 0 个。有 0 个数据节点正在运行,0 个节点被排除在此操作中。

你能指导我吗,我有一个家庭任务,我已经花了很多时间来寻找解决方案。

解决方法

数据节点丢失。当我格式化名称节点时,它会被分配一个新 ID,但数据节点没有被格式化并且仍然具有旧 ID。

  1. stop-dfs.sh // 如果 hdfs 正在运行

  2. hdfs namenode -format

  3. rm -rvf /home/syed/hdfs/data/*

    //数据节点的路径在你的home/hadoop/etc/hadoop/hdfs-site.xml

  4. start-dfs.sh

它应该可以工作!

,

您在用户之前丢失了 /。这就是您无法看到该文件的原因。试试下面的命令。

使用此命令创建目录。

hadoop fs -mkdir /user/syed

在hadoop路径中制作输入目录。

hadoop fs -mkdir /user/syed/input

您可以列出本地路径以检查文件是否存在。

ls /home/syed/hadoopMR/input/

然后用下面的命令把文件放到hadoop路径

hdfs dfs -put /home/syed/hadoopMR/input/file.txt /user/syed/input

希望这能回答您的问题。