我想通过hadoop distcp使用amazon的s3作为数据的dr备份。我有一些大文件,所以我需要用s3a。此命令起作用:
hadoop distcp <source> s3a://<ID>:<KEY>@bucket/
我想编写这个命令的脚本,不希望把id和key放到url中。是否有其他方法来指定它们,例如在hadoop配置文件或环境变量中?
回答我自己的问题。每次尝试删除配置xml文件或jvm变量的id和键时,都失败了。我终于意识到这是因为我在需要删除“@”符号时保留了它:
工作:hadoop distcp-dfs.s3a.access.key=-dfs.s3a.secret.key=s3a:///不工作:hadoop distcp-dfs.s3a.access.key=-dfs.s3a.secret.key=s3a://@/
如果在hadoop配置文件(例如hdfs-site.xml)中设置了fs.s3a.access.key和fs.s3a.secret.key,则此操作有效:hadoop distcp s3a:///但此操作无效:hadoop distcp s3a://@/
如果在另一个配置文件中设置了fs.s3a.access.key和fs.s3a.secret.key,则可以这样做:hadoop distcp-conf s3a:///但不起作用:hadoop distcp-conf s3a://@/
暂无答案!
目前还没有任何答案,快来回答吧!