问题描述
我刚开始使用 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。
-
stop-dfs.sh // 如果 hdfs 正在运行
-
hdfs namenode -format
-
rm -rvf /home/syed/hdfs/data/*
//数据节点的路径在你的home/hadoop/etc/hadoop/hdfs-site.xml
-
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
希望这能回答您的问题。