用distcp在hdfs和S3之间数据传输

隶属于文章系列:大数据安全实战 https://www.jianshu.com/p/76627fd8399c

  • hdfs和s3之间的带宽是复制速度的上限。
    • -m <num_maps>
    • bandwidth 带宽
    • 增加mapper的个数,和每个mapper的带宽可能会提高传输速度,但是 mapper个数 * bandwidth选项,不会超过hdfs和s3带宽的上限。
  • hadoop集群离s3越远,带宽越小,复制越慢。在同一区域的s3 和主机往往能提高速度。
  • 但是即便是hadoop同样也部署云基础设施中,有可能因触发s3的速度限制而导致数据复制慢。对一个目录树的负载过重,S3可能会可能会拖延处理或者拒绝。
    • 很多mapper的大数据量的复制操作,可能会减慢向S3的上传。
    • 当增减mapper的个数实际上在减慢复制速度的时候,可能的原因就是触发了限制。
  • -p[rbugpcaxt]选项对s3来说没有意义,但是用了之后会让每次数据传输都是全量复制。
hive@cdh-slave01:/tmp$ hadoop distcp -Dfs.s3a.access.key=fdsfdsfdsfsdIMNH6ZBsdf  -Dfs.s3a.secret.key=fasdfds  -update/user/hive/warehouse/ads.db  s3a://bucket/user/hive/warehouse/ads.db
19/04/10 06:59:01 INFO tools.OptionsParser: parseChunkSize: blocksperchunk false
19/04/10 06:59:02 WARN impl.MetricsConfig: Cannot locate configuration: tried hadoop-metrics2-s3a-file-system.properties,hadoop-metrics2.properties
19/04/10 06:59:02 INFO impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
19/04/10 06:59:02 INFO impl.MetricsSystemImpl: s3a-file-system metrics system started
19/04/10 06:59:03 INFO Configuration.deprecation: fs.s3a.server-side-encryption-key is deprecated. Instead, use fs.s3a.server-side-encryption.key
19/04/10 06:59:03 INFO tools.DistCp: Input Options: DistCpOptions{atomicCommit=false, syncFolder=true, deleteMissing=false, ignoreFailures=false, overwrite=false, append=false, useDiff=false, useRdiff=false, fromSnapshot=null, toSnapshot=null, skipCRC=false, blocking=true, numListstatusThreads=0, maxMaps=20, mapBandwidth=100, sslConfigurationFile='null', copyStrategy='uniformsize', preserveStatus=[], preserveRawXattrs=false, atomicWorkPath=null,logPath=null, sourceFileListing=null, sourcePaths=[/user/hive/warehouse/ads.db], targetPath=s3a://bucket/user/hive/warehouse/ads.db, targetPathExists=true, filtersFile='null', blocksPerChunk=0, copyBufferSize=8192}
19/04/10 06:59:04 INFO tools.SimpleCopyListing: Paths (files+dirs) cnt = 2843; dirCnt = 19
19/04/10 06:59:04 INFO tools.SimpleCopyListing: Build file listing completed.
19/04/10 06:59:04 INFO Configuration.deprecation: io.sort.mb is deprecated. Instead, use mapreduce.task.io.sort.mb
19/04/10 06:59:04 INFO Configuration.deprecation: io.sort.factor is deprecated. Instead, use mapreduce.task.io.sort.factor
19/04/10 06:59:04 INFO tools.DistCp: Number of paths in the copy list: 2843
19/04/10 06:59:04 INFO tools.DistCp: Number of paths in the copy list: 2843
19/04/10 06:59:04 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm721
19/04/10 06:59:04 INFO mapreduce.JobSubmitter: number of splits:21
19/04/10 06:59:04 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1554779117367_2179
19/04/10 06:59:05 INFO impl.YarnClientImpl: Submitted application application_1554779117367_2179
19/04/10 06:59:05 INFO mapreduce.Job: The url to track the job: http://cdh-master2:8088/proxy/application_1554779117367_2179/
19/04/10 06:59:05 INFO tools.DistCp: DistCp job-id: job_1554779117367_2179
19/04/10 06:59:05 INFO mapreduce.Job: Running job: job_1554779117367_2179
19/04/10 06:59:10 INFO mapreduce.Job: Job job_1554779117367_2179 running in uber mode : false
19/04/10 06:59:10 INFO mapreduce.Job:  map 0% reduce 0%
19/04/10 06:59:18 INFO mapreduce.Job:  map 10% reduce 0%
19/04/10 06:59:19 INFO mapreduce.Job:  map 19% reduce 0%
19/04/10 06:59:20 INFO mapreduce.Job:  map 52% reduce 0%
19/04/10 06:59:21 INFO mapreduce.Job:  map 67% reduce 0%
19/04/10 06:59:22 INFO mapreduce.Job:  map 86% reduce 0%
19/04/10 06:59:23 INFO mapreduce.Job:  map 95% reduce 0%
19/04/10 06:59:24 INFO mapreduce.Job:  map 100% reduce 0%
19/04/10 06:59:25 INFO mapreduce.Job: Job job_1554779117367_2179 completed successfully
19/04/10 06:59:25 INFO mapreduce.Job: Counters: 40
    File System Counters
        FILE: Number of bytes read=0
        FILE: Number of bytes written=3304256
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=985334
        HDFS: Number of bytes written=413302
        HDFS: Number of read operations=5797
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=42
        S3A: Number of bytes read=0
        S3A: Number of bytes written=32647
        S3A: Number of read operations=3014
        S3A: Number of large read operations=0
        S3A: Number of write operations=37
    Job Counters
        Launched map tasks=21
        Other local map tasks=21
        Total time spent by all maps in occupied slots (ms)=183711
        Total time spent by all reduces in occupied slots (ms)=0
        Total time spent by all map tasks (ms)=183711
        Total vcore-milliseconds taken by all map tasks=183711
        Total megabyte-milliseconds taken by all map tasks=564360192
    Map-Reduce Framework
        Map input records=2843
        Map output records=2822
        Input split bytes=2394
        Spilled Records=0
        Failed Shuffles=0
        Merged Map outputs=0
        GC time elapsed (ms)=9536
        CPU time spent (ms)=136920
        Physical memory (bytes) snapshot=9398771712
        Virtual memory (bytes) snapshot=56006500352
        Total committed heap usage (bytes)=15602810880
    File Input Format Counters
        Bytes Read=950293
    File Output Format Counters
        Bytes Written=413302
    DistCp Counters
        Bytes Copied=32647
        Bytes Expected=32647
        Bytes Skipped=1800151
        Files Copied=21
        Files Skipped=2822
19/04/10 06:59:25 INFO impl.MetricsSystemImpl: Stopping s3a-file-system metrics system...
19/04/10 06:59:25 INFO impl.MetricsSystemImpl: s3a-file-system metrics system stopped.
19/04/10 06:59:25 INFO impl.MetricsSystemImpl: s3a-file-system metrics system shutdown complete.

#在命令行查看目录个数 文件个数 目录总的字节数
hive@cdh-slave01:/tmp$ hdfs dfs -count /user/hive/warehouse/ads.db
          20         2824            1832798 /user/hive/warehouse/ads.db

当distcp计数器中有skipped这一行的时候,才是复制的增量,不然就是复制全量。
验证方法:
- 运行输出中:
Number of paths in the copy list: 2843包含了文件和目录的总数=Files Copied=+Files Skipped=files num+dir num
目录总的字节数=Bytes Copied=+Bytes Skipped

参考

  • distcp官网文档

  • ​Improving DistCp Performance

  • hadoop fs -count < hdfs path >

    统计hdfs对应路径下的目录个数,文件个数,文件总计大小

    显示为目录个数,文件个数,文件总计大小,输入路径

    例如:

    hadoop fs -count /data/dltb3yi/
    
     1        24000       253953854502 /data/dltb3yi/      获得24000个文件
    
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容