gpt4 book ai didi

hadoop - Hadoop Distcp-在不同位置之间复制时出现小文件问题

转载 作者:行者123 更新时间:2023-12-02 20:23:56 32 4
gpt4 key购买 nike

我试图复制400+ GB的数据和35.6 GB的数据量,这又是一个distcp作业,但是两者都花了将近2 -3个小时来完成。

集群中确实有足够的资源。

但是,当我检查了容器日志后,发现复制小文件花费了很多时间。有问题的文件是小文件。

2019-10-23 14:49:09,546 INFO [main] org.apache.hadoop.tools.mapred.CopyMapper: Copying hdfs://service-namemode-prod-ab/abc/xyz/ava/abc/hello/GRP_part-00001-.snappy.parquet to s3a://bucket-name/Data/abc/xyz/ava/abc/hello/GRP_part-00001-.snappy.parquet 2019-10-23 14:49:09,940 INFO [main] org.apache.hadoop.tools.mapred.RetriableFileCopyCommand: Creating temp file: s3a://bucket-name/Data/.distcp.tmp.attempt_1571566366604_9887_m_000010_0



那么,如何使用distcp来改善它以使复制更快呢?

注:将相同群集上的同一数据副本复制到对象存储(内部存储),而不是AWS S3,但与S3类似,花费了4分钟的时间才达到98.6 GB。

命令:

hadoop distcp -Dmapreduce.task.timeout=0 -Dfs.s3a.fast.upload=true -Dfs.s3a.fast.buffer.size=157286400 -Dfs.s3a.multipart.size=314572800 -Dfs.s3a.multipart.threshold=1073741824 -Dmapreduce.map.memory.mb=8192 -Dmapreduce.map.java.opts=-Xmx7290m -Dfs.s3a.max.total.tasks=1 -Dfs.s3a.threads.max=10 -bandwidth 1024 /abc/xyz/ava/ s3a://bucket-name/Data/



在值(value)方面可以优化什么?

我的集群规格如下,

分配内存(累积)- 1.2T

可用内存- 5.9T

已分配的VCores(累积)- 119T

可用的VCores- 521T

配置的容量- 997T

使用的HDFS- 813T

非HDFS使用- 2.7T

任何人都可以提出解决此问题的解决方案,并建议一个最佳的distcp conf,用于将 800 GB-1 TB 文件通常从HDFS传输到对象存储。

最佳答案

在我的项目中,我们已通过Distcp将20TB复制到S3a。这几乎花费了24小时+。但是,通过添加两个新的存储桶并通过相同的Distcp命令,复制减少到将近16小时。
另一种选择是增加群集中的Vcore数量。

关于hadoop - Hadoop Distcp-在不同位置之间复制时出现小文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58535517/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com