大数据学习笔记(九)-大数据中的压缩

1.常见压缩格式:
gzip,bizp2,LZO,Snappy
2.压缩技术使用原则:
缩小体积则需要更多的CPU计算量,存储数据倾向于大压缩比的压缩技术,根据实际情况选择合适的压缩技术。
3.压缩在大数据计算中的一个重要考量是压缩技术是否支持分割(split)
bzip2支持,LZO创建索引后支持
4.要让Hadoop支持压缩,需要对Hadoop源码进行编译
查看是否支持压缩:hadoop checknative
5.编译Hadoop源码
①软件需求:Maven,JDK,protocolBuffer 2.5.0,cmake 2.6,zlib-devel,openssl-devel
protobuf2.5.0安装:
下载源码:http://linux.linuxidc.com/index.php?folder=MjAxNcTq18rBzy8xMNTCLzEwyNUvQ2VudE9TN8/C08NKREsxLjex4NLrSGFkb29wLTIuNy4xyKu5/bPMz+q94g==
安装编译软件:

sudo yum install gcc
sudo yum install gcc-c++

安装编译protobuf

./configure
make
sudo make install
protoc --version

安装编译snappy

./configure
make
sudo make install
ll /usr/local/lib/ | grep snappy

安装其他编软件:

sudo yum -y install lzo-devel zlib-devel bzip2-devel autoconf automake libtool cmake openssl-devel 

②编译命令(支持Snappy):mvn package -Pdist,native -DskipTests -Dtar -Drequire.snappy
6.MapReduce时
①输入选择可分割的压缩方式:Bzip2
②中间数据的压缩选择压缩速度快的压缩方式:Snappy、LZO
③Reduce输出的压缩选择压缩比高的

配置MapReduce的压缩方法:
在core-site.xml中添加


    io.compression.codecs
    
        org.apache.hadoop.io.compress.GzipCodec,
        org.apache.hadoop.io.compress.DefaultCodec,
        org.apache.hadoop.io.compress.BZip2Codec,
    

mapred-site.xml中添加

<property>
    <name>mapreduce.output.fileoutputformat.compressname>
    <value>truevalue>
property>
<property>
    <name>mapreduce.output.fileoutputformat.compress.codecname>
    <value>org.apache.hadoop.io.compress.BZip2Codecvalue>
property>
<property>
    <name>mapreduce.map.output.compressname>
    <value>truevalue>
property>
<property>
    <name>mapreduce.map.output.compress.codecname>
    <value>org.apache.hadoop.io.compress.BZip2Codecvalue>
property>

7.配置Hive支持压缩的方式:
hive-site.xml添加如下配置代码

<property>
    <name>hive.exec.compress.outputname>
    <value>truevalue>
property>
<property>
    <name>mapreduce.output.fileoutputformat.compress.codecname>
    <value>org.apache.hadoop.io.compress.BZip2Codecvalue>
property>

你可能感兴趣的:(大数据)