天天看點

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

hadoop distcp 報錯: 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 上

hadoop distcp 報錯: Could not find any valid local directory for s3ablock-xxxx

fs.s3a.buffer.dir 該目錄需要提前建立好并且保證啟動 nodemanager 的 user 有讀寫權限

為了避免叢集擴節點

繼續閱讀