如何将本地文件复制到EMR集群中运行的HDFS终端?
操作步骤
- 确认本地文件存在
在执行put命令的节点执行ls <本地文件路径>,校验文件是否真实存在于当前节点,路径填写是否正确。如果是在非EMR集群节点的本地机器操作,需要先将文件传输到EMR主节点,再进行后续HDFS写入操作。 - 创建HDFS目标目录
如果HDFS侧的目标存储目录不存在,先执行创建操作:hdfs dfs -mkdir -p <HDFS目标目录路径>-p参数支持递归创建多级父目录,无需逐层手动创建。 - 执行文件上传命令
- 上传单个文件:
hdfs dfs -put <本地文件完整路径> <HDFS目标目录路径/>
如果需要重命名上传后的文件,可指定完整目标路径:hdfs dfs -put <本地文件完整路径> <HDFS目标目录路径/新文件名> - 上传整个文件夹:
hdfs dfs -put -r <本地文件夹完整路径> <HDFS目标目录路径/>
常见问题排查
- 权限不足报错:可使用集群有权限的用户执行操作,示例:
sudo -u hdfs hdfs dfs -put <本地路径> <HDFS路径> - 本地机器直接操作失败:需配置本地HDFS客户端,确保网络可连通EMR集群的NameNode、DataNode对应服务端口,否则建议先将文件传到EMR主节点再执行上传。
内容的提问来源于stack exchange,提问作者Sandy
相关产品推荐
相关产品推荐

