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

来源:互联网 发布:域名的ns记录 编辑:程序博客网 时间:2024/05/23 16:19

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 gccsudo yum install gcc-c++

安装编译protobuf

./configuremakesudo make installprotoc --version

安装编译snappy

./configuremakesudo make installll /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中添加

<property>    <name>io.compression.codecs</name>    <value>        org.apache.hadoop.io.compress.GzipCodec,        org.apache.hadoop.io.compress.DefaultCodec,        org.apache.hadoop.io.compress.BZip2Codec,    </value></property>

mapred-site.xml中添加

<property>    <name>mapreduce.output.fileoutputformat.compress</name>    <value>true</value></property><property>    <name>mapreduce.output.fileoutputformat.compress.codec</name>    <value>org.apache.hadoop.io.compress.BZip2Codec</value></property><property>    <name>mapreduce.map.output.compress</name>    <value>true</value></property><property>    <name>mapreduce.map.output.compress.codec</name>    <value>org.apache.hadoop.io.compress.BZip2Codec</value></property>

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

<property>    <name>hive.exec.compress.output</name>    <value>true</value></property><property>    <name>mapreduce.output.fileoutputformat.compress.codec</name>    <value>org.apache.hadoop.io.compress.BZip2Codec</value></property>
原创粉丝点击