从本地文件系统复制文件到HDFS失败:执行copyFromLocal命令报错
解决HDFS copyFromLocal报错:
copyFromLocal: 'new': No such file or directory 我来帮你一步步排查这个问题,这个错误本质是系统找不到命令里指定的new文件/路径,大概率是本地源或HDFS目标路径的问题,咱们逐个解决:
1. 先确认本地源文件是否存在
错误里的new很可能是你指定的本地源文件,先在本地终端执行命令检查它是否存在:
# 检查当前目录下是否有new文件 ls -l # 如果是绝对路径,直接检查路径 ls -l /path/to/new
如果本地确实没有这个文件,要么创建它,要么修正命令里的源文件路径(比如用绝对路径/home/naved/new,或者相对路径./docs/new)。
2. 检查HDFS目标路径的合法性
如果你的命令是把本地文件复制到HDFS的new路径下(比如命令写成hdfs dfs -copyFromLocal localfile new),那要确认:
- HDFS的当前工作目录下是否存在
new目录?可以用hdfs dfs -pwd查看当前HDFS目录,再用hdfs dfs -ls检查是否有new目录。 - 如果
new是你要在HDFS创建的新文件名,要确保它的父目录存在。比如你要复制到/user/naved/new,先执行hdfs dfs -ls /user/naved/确认父目录存在,不存在的话先创建:hdfs dfs -mkdir -p /user/naved/
3. 核对copyFromLocal命令格式
确保你没搞反源和目标的顺序,正确的命令格式是:
hdfs dfs -copyFromLocal <本地源文件/路径> <HDFS目标路径>
举个正确的例子:
# 把当前目录的local_data.txt复制到HDFS的/user/naved/目录下 hdfs dfs -copyFromLocal local_data.txt /user/naved/ # 或者复制并重命名为new_data.txt hdfs dfs -copyFromLocal local_data.txt /user/naved/new_data.txt
4. 其他可能的小问题
- 有没有拼写错误?比如把
new写成了nw或者其他错字? - 如果是复制目录,记得加上
-r参数:hdfs dfs -copyFromLocal -r local_dir /user/naved/
内容的提问来源于stack exchange,提问作者naved khan
相关产品推荐
相关产品推荐

