0
点赞
收藏
分享

微信扫一扫

hadoop distcp 报错: Could not find any valid local directory for s3ablock-xxxx

_LEON_ 2022-10-28 阅读 240


distcp 从 hdfs 到 s3a 报错: Could not find any valid local directory for s3ablock-xxxx

hadoop distcp 报错: Could not find any valid local directory for s3ablock-xxxx_s3

解决方法

在 cmd 中通过 jvm 属性注入 

hadoop distcp -Dfs.s3a.buffer.dir=/xxx hdfsxxx s3a://xxx/ooo

直接配置到 hdfs core-site.xml 文件

 

fs.s3a.buffer.dir

defualt: ${hadoop.tmp.dir}/s3a

desc: Comma separated list of directories that will be used to buffer file uploads to.

此参数在用到 org.apache.hadoop.fs.s3a.S3AFileSystem 时使用,在写 s3a 时先在本地的 local 存储目录(fs.s3a.buffer.dir)写 tmp 的 s3 file block,再 upload 到 s3a 上

hadoop distcp 报错: Could not find any valid local directory for s3ablock-xxxx_distcp_02

fs.s3a.buffer.dir 该目录需要提前创建好并且保证启动 nodemanager 的 user 有读写权限

为了避免集群扩节点

而带来的需要手动在新增节点上创建 buffer dir 的麻烦事

我们这边使用 yarn-site.xml 的 yarn.nodemanager.local-dirs 配置

因为 block 名字可以保证唯一,并且用完之后自动清除

举报

相关推荐

0 条评论