创建MAPR卷时提示挂载目录父路径不存在问题求助
报错根本原因
你遇到的报错核心是MapR卷挂载要求的父目录不存在,和你本地执行mkdir创建的路径没有关系,具体原因有两个:
- MapR的
maprcli volume create命令中-path参数指定的是MapR分布式文件系统(MapR-FS)内部的路径,和节点本地的Linux文件系统完全独立。你之前执行的普通mkdir命令是在本地磁盘创建目录,MapR集群完全识别不到该路径。 - 就算你操作的是MapR-FS路径,报错提示的是挂载目录的父目录不存在,也就是
/MyCluster/apps/application_logs这个路径在MapR-FS中不存在,你提前创建完整的node1挂载点目录不仅没用,还会导致后续挂载冲突。
解决步骤
- 首先删除你误创建的本地
/MyCluster/目录或者MapR-FS中提前创建的node1目录,避免后续冲突:
如果是本地目录,执行本地删除命令:rm -rf /MyCluster/apps/application_logs/node1
如果是MapR-FS中的目录,执行:hadoop fs -rm -r /MyCluster/apps/application_logs/node1 - 创建MapR-FS中缺失的父目录,必须用Hadoop文件系统操作命令:
hadoop fs -mkdir -p /MyCluster/apps/application_logs - 验证父目录确实存在于MapR-FS中:
hadoop fs -ls /MyCluster/apps/application_logs - 重新执行卷创建命令即可:
maprcli volume create -name test-volume -path /MyCluster/apps/application_logs/node1
补充说明
如果你节点配置了MapR-FS的FUSE挂载(默认挂载路径为/mapr),也可以直接操作/mapr/MyCluster/前缀下的路径,该目录下的所有操作会自动同步到MapR-FS,不需要额外使用hadoop fs命令。
内容的提问来源于stack exchange,提问作者Vokyas Nayolak
相关产品推荐
相关产品推荐

