Alluxio挂载HDFS数据及HDFS与S3间数据拷贝问题咨询
问题解答
1. 是否支持挂载HDFS并通过Alluxio将数据拷贝/持久化到S3
完全支持,这是Alluxio异构存储联邦能力的核心使用场景:
- 先分别挂载HDFS和S3到Alluxio命名空间,挂载命令示例:
# 挂载HDFS目标路径 alluxio fs mount /mnt/hdfs hdfs://<namenode服务地址>:<rpc端口>/<待挂载HDFS路径> # 挂载S3目标存储桶路径 alluxio fs mount /mnt/s3 s3://<你的桶名>/<目标S3路径> - 跨挂载点执行拷贝时加
--persist参数,即可将HDFS的数据直接持久化写入S3存储桶,不会出现数据只存在Alluxio内存未落盘的情况,示例命令:alluxio fs cp --persist /mnt/hdfs/待拷贝数据路径 /mnt/s3/目标存储路径
Alluxio原生适配HDFS、S3作为底层存储,挂载后统一纳入Alluxio的全局命名空间管理,跨底层存储的数据持久化拷贝不需要额外开发适配。
2. 是否支持HDFS与S3互拷时数据不存入Alluxio缓存
支持,只需要在执行拷贝操作时指定读写策略为透传、不缓存模式即可,全程数据不会在Alluxio Worker的缓存目录留存副本:
- 小规模文件拷贝可以直接用普通cp命令,通过临时参数指定读写类型:
其中alluxio fs \ -Dalluxio.user.file.readtype=NO_CACHE \ -Dalluxio.user.file.writetype=THROUGH \ cp /mnt/hdfs/源路径 /mnt/s3/目标路径NO_CACHE表示读源端(HDFS)数据时不将数据块拉取到Alluxio本地缓存,THROUGH表示写目标端(S3)时直接透传写入底层存储,不在Alluxio缓存留存副本。 - 大规模数据迁移场景推荐用分布式拷贝命令
distributedCp,执行效率远高于普通cp,同样支持上述不缓存的参数配置:alluxio fs distributedCp \ -Dalluxio.user.file.readtype=NO_CACHE \ -Dalluxio.user.file.writetype=THROUGH \ /mnt/hdfs/源路径 /mnt/s3/目标路径
注意:上述读写类型参数如果写在全局
alluxio-site.properties配置文件里,会让所有Alluxio客户端操作都跳过缓存,失去本地缓存加速的效果,仅临时做数据迁移时在命令行带参即可,不要随意修改全局默认配置。
内容的提问来源于stack exchange,提问作者ChanChan Mao
相关产品推荐
相关产品推荐

