日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop之Hadoop数据压缩

發布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop之Hadoop数据压缩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hadoop之Hadoop數據壓縮


目錄

  • 概述
  • MR支持的壓縮編碼
  • Gzip壓縮
  • Bzip2壓縮
  • Lzo壓縮
  • Snappy壓縮
  • 壓縮位置選擇
  • 壓縮參數配置

  • 1. 概述

  • 壓縮技術能夠有效減少底層存儲系統(HDFS)讀寫字節數。壓縮提高了網絡帶寬和磁盤空間的效率。在Hadoop下,尤其是數據規模很大和工作負載密集的情況下,使用數據壓縮顯得非常重要。在這種情況下,I/O操作和網絡數據傳輸要花大量的時間。還有,Shuffle與Merge過程同樣也面臨著巨大的I/O壓力。

  • 鑒于磁盤I/O和網絡帶寬是Hadoop的寶貴資源,數據壓縮對于節省資源、最小化磁盤I/O和網絡傳輸非常有幫助。不過,盡管壓縮與解壓操作的CPU開銷不高,其性能的提升和資源的節省并非沒有代價。

  • 如果磁盤I/O和網絡帶寬影響了MapReduce作業性能,在任意MapReduce階段啟用壓縮都可以改善端到端處理時間并減少I/O和網絡流量。

  • 壓縮Mapreduce的一種優化策略:通過壓縮編碼對Mapper或者Reducer的輸出進行壓縮,以減少磁盤IO,提高MR程序運行速度(但相應增加了cpu運算負擔)。

  • 注意:壓縮特性運用得當能提高性能,但運用不當也可能降低性能。
    基本原則:

  • 運算密集型的job,少用壓縮
  • IO密集型的job,多用壓縮

  • 2. MR支持的壓縮編碼

    壓縮格式hadoop自帶?算法文件擴展名是否可切分換成壓縮格式后,原來的程序是否需要修改
    Deflate是,直接使用Defalate.deflate和文本處理一樣,不需要修改
    Gzip是,直接使用Defalate.gz和文本處理一樣,不需要修改
    bzip2是,直接使用bzip2.bz2和文本處理一樣,不需要修改
    LZO否,需要安裝LZO.lzo需要建索引,還需要指定輸入格式
    Snappy否,需要安裝Snappy.snappy和文本處理一樣,不需要修改
  • 為了支持多種壓縮/解壓縮算法,Hadoop引入了編碼/解碼器,如下表所示
  • 壓縮格式對應的編碼/解碼器
    DEFLATEorg.apache.hadoop.io.compress.DefaultCodec
    gziporg.apache.hadoop.io.compress.GzipCodec
    bzip2org.apache.hadoop.io.compress.BZip2Codec
    LZOcom.hadoop.compression.lzo.LzopCodec
    Snappyorg.apache.hadoop.io.compress.SnappyCodec
  • 壓縮性能的比較
  • 壓縮算法原始文件大小壓縮文件大小壓縮速度解壓速度
    gzip8.3GB1.8GB17.5MB/s58MB/s
    bzip28.3GB1.1GB2.4MB/s9.5MB/s
    LZO8.3GB2.9GB49.3MB/s74.6MB/s

    http://google.github.io/snappy/
    On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB/sec or more and decompresses at about 500 MB/sec or more.


    3. Gzip壓縮

  • 優點:壓縮率比較高,而且壓縮/解壓速度也比較快;hadoop本身支持,在應用中處理gzip格式的文件就和直接處理文本一樣;大部分linux系統都自帶gzip命令,使用方便。
  • 缺點:不支持split。
  • 應用場景:當每個文件壓縮之后在130M以內的(1個塊大小內),都可以考慮用gzip壓縮格式。例如說一天或者一個小時的日志壓縮成一個gzip文件,運行mapreduce程序的時候通過多個gzip文件達到并發。hive程序,streaming程序,和java寫的mapreduce程序完全和文本處理一樣,壓縮之后原來的程序不需要做任何修改。

  • 4. Bzip2壓縮

  • 優點:支持split;具有很高的壓縮率,比gzip壓縮率都高;hadoop本身支持,但不支持native;在linux系統下自帶bzip2命令,使用方便。
  • 缺點:壓縮/解壓速度慢;不支持native。
  • 應用場景:適合對速度要求不高,但需要較高的壓縮率的時候,可以作為mapreduce作業的輸出格式;或者輸出之后的數據比較大,處理之后的數據需要壓縮存檔減少磁盤空間并且以后數據用得比較少的情況;或者對單個很大的文本文件想壓縮減少存儲空間,同時又需要支持split,而且兼容之前的應用程序(即應用程序不需要修改)的情況。

  • 5. Lzo壓縮

  • 優點:壓縮/解壓速度也比較快,合理的壓縮率;支持split,是hadoop中最流行的壓縮格式;可以在linux系統下安裝lzop命令,使用方便。
  • 缺點:壓縮率比gzip要低一些;hadoop本身不支持,需要安裝;在應用中對lzo格式的文件需要做一些特殊處理(為了支持split需要建索引,還需要指定inputformat為lzo格式)。
  • 應用場景:一個很大的文本文件,壓縮之后還大于200M以上的可以考慮,而且單個文件越大,lzo優點越越明顯。

  • 6. Snappy壓縮

  • 優點:高速壓縮速度和合理的壓縮率。
  • 缺點:不支持split;壓縮率比gzip要低;hadoop本身不支持,需要安裝;
  • 應用場景:當Mapreduce作業的Map輸出的數據比較大的時候,作為Map到Reduce的中間數據的壓縮格式;或者作為一個Mapreduce作業的輸出和另外一個Mapreduce作業的輸入。

  • 7. 壓縮位置選擇

    壓縮可以在MapReduce作用的任意階段啟用,如圖下所示


    8. 壓縮參數配置

    要在Hadoop中啟用壓縮,可以配置如下參數:

    總結

    以上是生活随笔為你收集整理的Hadoop之Hadoop数据压缩的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。