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

Posted PeersLee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop distcp 报错: Could not find any valid local directory for s3ablock-xxxx相关的知识,希望对你有一定的参考价值。

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

解决方法

在 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 上

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

为了避免集群扩节点

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

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

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

以上是关于hadoop distcp 报错: Could not find any valid local directory for s3ablock-xxxx的主要内容,如果未能解决你的问题,请参考以下文章

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

hadoop start-all.sh报错JAVA_HOME is not set and could not be found.

hadoop启动报错:localhost: ssh: Could not resolve hostname localhost

Hadoop DistCp 使用指南

markdown hadoop distcp的用法实践

大数据系列hadoop上传文件报错_COPYING_ could only be replicated to 0 nodes