如何将本地数据集导入HortonWorks Sandbox的HDFS存储中?
故障解决步骤
1 定位错误根源
你遇到的报错由三个问题共同导致:
- 本地源文件路径填写错误:你写的
/Downloads/u.data是系统根目录下的Downloads路径,但你上传的数据集实际存放在Jupyter运行环境对应用户的家目录下的Downloads文件夹,路径为~/Downloads/u.data - 未指定HDFS目标存储路径:
copyFromLocal命令需要同时传入本地源路径和HDFS目标路径,缺省目标路径时会默认写入当前用户的HDFS家目录,若该目录未提前创建也会报错 - 之前的HDFS目录权限配置错误:你执行
chown Downloads:Downloads /user/Downloads时,系统不存在名为Downloads的用户和用户组,导致你当前操作的用户没有该HDFS目录的写入权限
2 修正权限配置
首先执行命令获取你当前操作的用户名:
whoami
假设上述命令返回的用户名为myuser,执行以下命令修正HDFS目录权限:
sudo -u hdfs hadoop fs -chown myuser:myuser /user/Downloads
3 执行正确的导入命令
先确认本地文件存在:
ls ~/Downloads/u.data ~/Downloads/u.item
如果命令正常返回两个文件路径,执行导入命令:
# 导入u.data到HDFS的/user/Downloads目录下 hadoop fs -copyFromLocal ~/Downloads/u.data /user/Downloads/ # 导入u.item到HDFS的/user/Downloads目录下 hadoop fs -copyFromLocal ~/Downloads/u.item /user/Downloads/
4 验证导入结果
执行以下命令查看HDFS目录下的文件:
hadoop fs -ls /user/Downloads
返回结果中能看到u.data和u.item两个文件即为导入成功。
内容的提问来源于stack exchange,提问作者grace0726
相关产品推荐
相关产品推荐

