Mac系统执行HDFS dfs -put命令报路径不存在如何解决
Mac环境HDFS上传文件报错解决
报错复现信息
- 运行环境:MacOS
- 执行命令:
hfs dfs -put /Users/mariajesuscanoles/Desktop/test/word.txt /Users/mariajesuscanoles
- 报错输出:
2022-07-03 14:39:16,022 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable put: `/Users/mariajesuscanoles': No such file or directory: `hdfs://localhost:8020/Users/mariajesuscanoles'
根因说明
- 第一条WARN级别的日志不影响核心功能:Mac环境没有预编译匹配的Hadoop原生库,Hadoop会自动使用内置Java类执行操作,这条提示不是上传失败的诱因,可忽略,也可自行编译对应版本的Mac原生库消除提示。
- 核心报错为路径认知错误:填写的目标路径
/Users/mariajesuscanoles是Mac本地文件系统的绝对路径,HDFS会将传入的非完整URI路径直接拼接在HDFS集群根路径下,实际查找的是HDFS集群内的hdfs://localhost:8020/Users/mariajesuscanoles路径,而该路径在HDFS中不存在,因此抛出找不到目录的错误。
*注意:HDFS默认的用户家目录前缀为/user(无末尾s),和Mac本地的/Users目录命名有区别,不要混淆本地路径和HDFS路径。
修复步骤
- 提前创建HDFS上的目标存储目录,以默认用户家目录为例,执行命令:
hdfs dfs -mkdir -p /user/mariajesuscanoles
- 修正上传命令中的目标路径为HDFS实际存在的路径,重新执行上传:
hdfs dfs -put /Users/mariajesuscanoles/Desktop/test/word.txt /user/mariajesuscanoles
- 上传完成后可执行
hdfs dfs -ls /user/mariajesuscanoles验证文件是否上传成功。
*额外提示:如果执行hfs命令提示不存在,请将命令前缀替换为官方标准命令hdfs。
内容的提问来源于stack exchange,提问作者María Jesús Cañoles
相关产品推荐
相关产品推荐

