我使用s3disctcp将31,16,886个文件(300 GB)从S3复制到HDFS,花了4天时间才复制10,48,576个文件。我杀了这个工作,需要了解我怎样才能减少这个时间或什么我做错了。
s3-dist-cp --src s3://xml-prod/ --dest hdfs:///Output/XML/
它在AWS EMR机器上。
答案 0 :(得分:0)
问题在于HDFS以及在处理大量小文件时性能不佳。在将文件放入HDFS之前考虑组合文件。 s3distcp
command的 groupby
选项提供了一种方法。
答案 1 :(得分:0)
为什么不将整个过程作为单个应用程序管道的一部分?这样你就不必在HDFS中存储很多小的中间文件。
S3文件阅读器 - > XML解析器 - >选择必填字段 - > Parquet Writer(带旋转策略的单个文件)