欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

十七、hadoop壓縮相關(guān)-創(chuàng)新互聯(lián)

一、數(shù)據(jù)壓縮在hadoop中的意義

1、基本概述

? 壓縮技術(shù)可以減少底層hdfs的讀寫(xiě)字節(jié)數(shù)。并且能夠降低在數(shù)據(jù)傳輸過(guò)程中占用的網(wǎng)絡(luò)帶寬資源,以及降低占用的磁盤(pán)空間。而在MapReduce中,shuffle以及merge過(guò)程都面臨著巨大的IO壓力。但是要注意增加了壓縮,另外一方面會(huì)增加cpu的負(fù)載。所以在要權(quán)衡好是否采用壓縮,以及采用的壓縮算法的特性。

在密山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營(yíng)銷(xiāo)網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,密山網(wǎng)站建設(shè)費(fèi)用合理。

2、壓縮應(yīng)用基本原則

運(yùn)算密集型的job,少用壓縮。因?yàn)閴嚎s占用cpu。
IO密集型的job,可用壓縮減少數(shù)據(jù)量。
選擇壓縮算法時(shí),要注意壓縮比,壓縮比越大,壓縮以及解壓時(shí)間越長(zhǎng)。

二、MR支持的壓縮編碼格式

1、壓縮編碼

壓縮格式 hadoop是否自帶 算法 文件擴(kuò)展名 可否可切分 換成壓縮格式后,原來(lái)的程序是否需要修改
DEFAULTDEFAULT.deflate與普通文本處理一樣,不需要修改
gzipDEFAULT.gz與普通文本處理一樣,不需要修改
bzip2bzip2.bz2與普通文本處理一樣,不需要修改
LZO需另外安裝lzo.lzo需要建立索引文件,還需要指定輸出格式
snappy需另外安裝snappy.snappy與普通文本處理一樣,不需要修改

2、不同壓縮算法對(duì)應(yīng)的編解碼器

壓縮格式 對(duì)應(yīng)編解碼器
DEFAULTorg.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

3、不同壓縮算法的特性以及適用場(chǎng)景

(1)gzip

優(yōu)點(diǎn):
壓縮率高,解壓、壓縮速度也必比較快。hadoop本身自帶,在應(yīng)用中處理gzip格式的文件就和直接處理文本一樣。大部分Linux自帶gzip命令,使用方便。

缺點(diǎn):不支持split

適用場(chǎng)景:
當(dāng)每個(gè)文件壓縮之后在一個(gè)block左右的大小(因?yàn)闊o(wú)法分片),都可以考慮使用gzip將原數(shù)據(jù)壓縮。例如可以將一天或者一小時(shí)的日志壓縮成一個(gè)gzip文件,運(yùn)行MapReduce的時(shí)候就可以并行處理多個(gè)gzip。hive,streaming,MapReduce程序處理壓縮文件時(shí),無(wú)需修改程序,就像處理文本文件一樣。

(2)bzip2

優(yōu)點(diǎn):
支持split;高壓縮比,比gzip高。hadoop自帶,Linux下自帶bzip2命令

缺點(diǎn):壓縮、解壓速度慢,不支持native(java和C交互的api接口)

適用場(chǎng)景:
適合對(duì)速度要求不高,但需要較高的壓縮率的時(shí)候,可以作為mapreduce作業(yè)的輸出格式;或者輸出之后的數(shù)據(jù)比較大,處理之后的數(shù)據(jù)需要壓縮存檔減少磁盤(pán)空間并且以后數(shù)據(jù)用得比較少的情況;或者對(duì)單個(gè)很大的文本文件想壓縮減少存儲(chǔ)空間,同時(shí)又需要支持split,而且兼容之前的應(yīng)用程序(即應(yīng)用程序不需要修改)的情況。

(3)lzo

優(yōu)點(diǎn):
壓縮/解壓速度比較快,壓縮率合理(比gzip和bzip2?。?。支持split,是hadoop中最流行的壓縮格式。可以在Linux下可以通過(guò)安裝lzop命令來(lái)使用

缺點(diǎn):
壓縮率比gzip要低一些;hadoop本身不支持,需要安裝;在應(yīng)用中對(duì)lzo格式的文件需要做一些特殊處理(為了支持split需要建索引,還需要指定inputformat為lzo格式)。

適用場(chǎng)景:
一個(gè)很大的文本文件,壓縮之后還大于200M以上的可以考慮,而且單個(gè)文件越大,lzo優(yōu)點(diǎn)越越明顯。

(4)snappy

優(yōu)點(diǎn):壓縮和解壓速度快,合理的壓縮率
缺點(diǎn):不支持的split,壓縮率比gzip要低;hadoop本身不支持,需要安裝
適用場(chǎng)景:
當(dāng)Mapreduce作業(yè)的Map輸出的數(shù)據(jù)比較大的時(shí)候,作為Map到Reduce的中間數(shù)據(jù)的壓縮格式;或者作為一個(gè)Mapreduce作業(yè)的輸出和另外一個(gè)Mapreduce作業(yè)的輸入。

三、壓縮的配置

1、適用范圍

可以用在MapReduce的任意階段輸出、原始數(shù)據(jù)的壓縮、reduce的輸出等

2、hadoop壓縮配置參數(shù)

參數(shù) 默認(rèn)值 階段 建議
io.compression.codecs (在core-site.xml中配置)org.apache.hadoop.io.compress.DefaultCodec, org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.BZip2Codec輸入壓縮Hadoop使用文件擴(kuò)展名判斷是否支持某種編解碼器
mapreduce.map.output.compress(在mapred-site.xml中配置)falsemap輸出這個(gè)參數(shù)設(shè)為true啟用壓縮
mapreduce.map.output.compress.codec(在mapred-site.xml中配置)org.apache.hadoop.io.compress.DefaultCodecmapper輸出使用LZO或snappy編解碼器在此階段壓縮數(shù)據(jù)
mapreduce.output.fileoutputformat.compress(在mapred-site.xml中配置)falsereduce輸出這個(gè)參數(shù)設(shè)為true啟用壓縮
mapreduce.output.fileoutputformat.compress.codec(在mapred-site.xml中配置)org.apache.hadoop.io.compress. DefaultCodecreduce輸出使用gzip或者bzip2來(lái)壓縮
mapreduce.output.fileoutputformat.compress.type(在mapred-site.xml中配置)RECORDreduce輸出SequenceFile輸出使用的壓縮類型:NONE和BLOCK

四、壓縮應(yīng)用實(shí)戰(zhàn)例子

1、數(shù)據(jù)流的壓縮和解壓

package JavaCompress;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionCodecFactory;
import org.apache.hadoop.io.compress.CompressionInputStream;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.util.ReflectionUtils;

import java.io.*;

public class TestCompress {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //compress("G:\\Fly Away-梁靜茹.mp3", "org.apache.hadoop.io.compress.GzipCodec");
        deCompress("G:\\Fly Away-梁靜茹.mp3.gz", "mp3");

    }

//壓縮
    public static void compress(String filename, String method) throws IOException, ClassNotFoundException {
        //創(chuàng)建輸入流
        FileInputStream fis = new FileInputStream(new File(filename));

        //通過(guò)反射獲取壓縮類的Class 對(duì)象
        Class codecClass = Class.forName(method);

        //通過(guò)反射獲取壓縮對(duì)象
        CompressionCodec codec = (CompressionCodec)ReflectionUtils.newInstance(codecClass, new Configuration());

        //創(chuàng)建普通輸出流對(duì)象
        FileOutputStream fos = new FileOutputStream(new File(filename + codec.getDefaultExtension()));

        //通過(guò)壓縮對(duì)象創(chuàng)建壓縮輸出流,類似于將普通輸出流封裝成壓縮輸出流
        CompressionOutputStream cos = codec.createOutputStream(fos);

        //流拷貝
        IOUtils.copyBytes(fis, cos, 1024 * 1024 * 5, false);

        fis.close();
        cos.close();
        fos.close();

    }

//解壓
    public static void deCompress(String filename, String decode) throws IOException {
        CompressionCodecFactory factory = new CompressionCodecFactory(new Configuration());

        //獲取文件的壓縮算法類型對(duì)象,返回值可用于檢查文件是否可解壓
        CompressionCodec codec = factory.getCodec(new Path(filename));
        if (codec == null) {
            System.out.println("不支持解壓縮:" + filename);
            return;
        }

        //根據(jù)壓縮文件的壓縮類型,返回的對(duì)象用于創(chuàng)建壓縮輸入流
        CompressionInputStream cis = codec.createInputStream(new FileInputStream(new File(filename)));

        //創(chuàng)建輸出流
        FileOutputStream fos = new FileOutputStream(new File(filename + decode));

        IOUtils.copyBytes(cis, fos, 1024 * 1024 * 5, false);

        cis.close();
        fos.close();

    }
}

2、map輸出采用壓縮

用法很簡(jiǎn)單,只需在driver中給job配置以下參數(shù)即可

Configuration configuration = new Configuration();

// 開(kāi)啟map端輸出壓縮
configuration.setBoolean("mapreduce.map.output.compress", true);
// 設(shè)置map端輸出壓縮方式
configuration.setClass("mapreduce.map.output.compress.codec", BZip2Codec.class, CompressionCodec.class);

3、reduce輸出采用壓縮

依舊是在driver中設(shè)置以下

// 設(shè)置reduce端輸出壓縮開(kāi)啟
FileOutputFormat.setCompressOutput(job, true);

// 設(shè)置壓縮的方式
FileOutputFormat.setOutputCompressorClass(job, BZip2Codec.class); 
//      FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class); 
//      FileOutputFormat.setOutputCompressorClass(job, DefaultCodec.class); 

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞標(biāo)題:十七、hadoop壓縮相關(guān)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://aaarwkj.com/article20/jdpco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序關(guān)鍵詞優(yōu)化、網(wǎng)站改版、網(wǎng)站維護(hù)、做網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
欧美日韩在线视频一区| 日本精品在线小视频| 人妻丰满熟妇九九久久| 国产精品亚洲二区三区| 丰满人妻二区三区性色| 亚洲精品中文字幕日本乱码| 在线观看免费在线观看免费| 亚洲乱码中文字幕人妻| 天天操天天干夜夜骑| 国产剧情av一区在线观看| 欧美日韩久久免费观看| 国语精品对白交换日韩| 黑人巨大精品欧美黑寡妇| 先锋影音女同中文字幕| 中国亚洲黄色录像免费看| 中文字幕av在线有码| 日韩二区三区在线视频| 国产亚洲精品视频在线网| 日韩精品亚洲一区二区三区免费| 日韩激情小视频在线观看| 亚洲国产欧美在线人成人| 毛片精品一区二区二区三区| 97在线观看免费播放| 午夜视频在线观看区一| 四虎海外永久免费地址| 欧美日韩在线不卡成人| 久久av免费一区二区观看| 蜜桃视频在线观看91| 欧美香蕉在线观看视频| 久久av天堂在线观看| 亚洲高清无毛一区二区| 天堂8在线最新版av| 森泽佳奈在线视频观看| 持续侵犯人妻中文字幕| 日韩精品日本道欧美黄片 | 日韩美女av在线播放| 色哟哟视频免费在线观看| 国产一区二区三区不卡av| 精品视频日韩在线观看| 看看美女阴逼毛茸茸的| 日韩亚洲欧美不卡在线|