Hadoop压缩存储测试

Hadoop压缩存储测试执行


1.放大测试数据

放大之后的大小 : 6.26

内容 : 重复的测序数据
在这里插入图片描述

上传到服务器 文件名 : test1_R1.fq
在这里插入图片描述

2.部署Hadoop环境

2.1上传Hadoop包

在这里插入图片描述

3.执行各个格式压缩解压

设置HDFS的副本数为1
在这里插入图片描述

查看可用的压缩格式 hadoop checknative
在这里插入图片描述

配置压缩格式之后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkXXy0Jx-1619338844829)(9C5F677A3DF04D10BCBCC421B10A51F0)]

3.1代码实现打成Jar包上传到服务器

在这里插入图片描述

3.2Gzip
hejiahao@MountHua:~/package$ java -jar  /home/hejiahao/package/HadoopCompress-1.0-SNAPSHOT.jar compress org.apache.hadoop.io.compress.GzipCodec /home/hejiahao/package/test1_R1.fq   .gz .fq
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
hejiahao@MountHua:~/package$ java -jar  /home/hejiahao/package/HadoopCompress-1.0-SNAPSHOT.jar compress org.apache.hadoop.io.compress.GzipCodec /home/hejiahao/package/test1_R1.fq   .fq .gz
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
05:02:50开始压缩------/home/hejiahao/package/test1_R1.fq
/home/hejiahao/package/test1_R1.fq--------压缩完成05:03:29
hejiahao@MountHua:~/package$ java -jar /home/hejiahao/package/HadoopCompress-1.0-SNAPSHOT.jar uncompress org.apache.hadoop.io.compress.GzipCodec  /home/hejiahao/package/test1_R1.gz   .gz .fq
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
load lzo class completed: org.apache.hadoop.io.compress.GzipCodec
05:06:00开始解压------/home/hejiahao/package/test1_R1.gz
org.apache.hadoop.io.compress.DecompressorStream@166fa74d--org.apache.hadoop.fs.FSDataOutputStream@40f08448
/home/hejiahao/package/test1_R1.gz--------解压完成05:06:15

结论 :
原始大小 : 6.3GB
压缩文件 : 60MB
压缩效率 : 53.16MB/s
压缩时间 : 39s
解压效率 : 336MB/s
解压时间 : 15s

3.3 Lzo
[root@hadoop101 testData]# lzop -v test1_R1.fq 
compressing test1_R1.fq into test1_R1.fq.lzo
[root@hadoop101 testData]# ll -h
total 7.7G
-rw-r--r-- 1 root root 393M Sep 21 23:44 090413_I352_FC31307AAXX_L6_SORssqRADDHAAPE_1.fq.gz
-rw-r--r-- 1 root root 722M Sep 22 00:26 090607_I352_FC31309AAXX_L1_SORssqRAPDIBAPE_2.fq.gz
-rw-r--r-- 1 root root 6.3G Sep 22 06:51 test1_R1.fq
-rw-r--r-- 1 root root 263M Sep 22 06:51 test1_R1.fq.lzo
[root@hadoop101 xinjian]# lzop -dv test1_R1.fq.lzo 
decompressing test1_R1.fq.lzo into test1_R1.fq
[root@hadoop101 xinjian]# ll
total 6844044
-rw-r--r-- 1 root root 6732822698 Sep 22 06:51 test1_R1.fq
-rw-r--r-- 1 root root  275475630 Sep 22 06:51 test1_R1.fq.lzo

结论 :
原始大小 : 6.3GB
压缩文件 : 263M
压缩效率 : 105MB/s
压缩时间 : 40秒
解压效率 : 39MB/s
解压时间 : 8秒

3.4 BZip2
[root@hadoop101 testData]# java  -jar /opt/software/HadoopCompress-1.0-SNAPSHOT.jar compress  org.apache.hadoop.io.compress.BZip2Codec   test1_R1.fq  .fq  .fq.bz2
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
开始压缩------test1_R1.fq
test1_R1.fq--------压缩完成
------------------------------------------------开始压缩下一个文件-------------------------------------------------------
[root@hadoop101 testData]# java  -jar /opt/software/HadoopCompress-1.0-SNAPSHOT.jar uncompress  org.apache.hadoop.io.compress.BZip2Codec   test1_R1.fq.bz2    .fq.bz2 .fq
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
load lzo class completed: org.apache.hadoop.io.compress.BZip2Codec
开始解压------test1_R1.fq.bz2
org.apache.hadoop.io.compress.BZip2Codec$BZip2CompressionInputStream@46238e3f--org.apache.hadoop.fs.FSDataOutputStream@6e2c9341
test1_R1.fq.bz2--------解压完成
------------------------------------------------开始解压下一个文件-------------------------------------------------------
[root@hadoop101 testData]# 

结论 :
原始大小 : 6.3GB
压缩文件 : 50MB
压缩效率 : 3.4MB/s
压缩时间 : 35分钟
解压效率 : 8.9MB/s
解压时间 : 3分钟

3.5 Default
[root@hadoop101 testData]# java  -jar /opt/software/HadoopCompress-1.0-SNAPSHOT.jar compress  org.apache.hadoop.io.compress.DefaultCodec test1_R1.fq .fq .fq.deflate
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
开始压缩------test1_R1.fq
test1_R1.fq--------压缩完成
------------------------------------------------开始压缩下一个文件-------------------------------------------------------
[root@hadoop101 testData]# ll
total 1202184
-rw-r--r-- 1 root root 412088417 Sep 21 23:44 090413_I352_FC31307AAXX_L6_SORssqRADDHAAPE_1.fq.gz
-rw-r--r-- 1 root root 756945670 Sep 22 00:26 090607_I352_FC31309AAXX_L1_SORssqRAPDIBAPE_2.fq.gz
-rw-r--r-- 1 root root  61996481 Sep 22 06:47 test1_R1.fq.deflate
[root@hadoop101 testData]# 
[root@hadoop101 testData]# java  -jar /opt/software/HadoopCompress-1.0-SNAPSHOT.jar uncompress  org.apache.hadoop.io.compress.BZip2Codec   test1_R1.fq.bz2   
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
load lzo class completed: org.apache.hadoop.io.compress.BZip2Codec
开始解压------test1_R1.fq.bz2
org.apache.hadoop.io.compress.BZip2Codec$BZip2CompressionInputStream@46238e3f--org.apache.hadoop.fs.FSDataOutputStream@6e2c9341
test1_R1.fq.bz2--------解压完成
[root@hadoop101 testData]# ll
total 7716664
-rw-r--r-- 1 root root  412088417 Sep 21 23:44 090413_I352_FC31307AAXX_L6_SORssqRADDHAAPE_1.fq.gz
-rw-r--r-- 1 root root  756945670 Sep 22 00:26 090607_I352_FC31309AAXX_L1_SORssqRAPDIBAPE_2.fq.gz
-rw-r--r-- 1 root root 6732822698 Sep 22 06:51 test1_R1.fq

结论 :
原始大小 : 6.3GB
压缩文件 : 61MB
压缩效率 : 55MB/s
压缩时间 : 95秒
解压效率 : 17.2MB/s
解压时间 : 10秒

3.6 Lz4
[root@hadoop101 testData]# java  -jar /opt/software/HadoopCompress-1.0-SNAPSHOT.jar compress  org.apache.hadoop.io.compress.Lz4Codec  /testData/test1_R1.fq  .fq  .fq.lz4
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
开始压缩------/testData/test1_R1.fq
/testData/test1_R1.fq--------压缩完成
------------------------------------------------开始压缩下一个文件-------------------------------------------------------
[root@hadoop101 testData]# java  -jar /opt/software/HadoopCompress-1.0-SNAPSHOT.jar uncompress  org.apache.hadoop.io.compress.Lz4Codec  /testData/test1_R1.fq.lz4  .lz4 .fq  
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

load lzo class completed: org.apache.hadoop.io.compress.Lz4Codec
开始解压------/testData/test1_R1.fq.lz4
org.apache.hadoop.io.compress.BlockDecompressorStream@1efee8e7--org.apache.hadoop.fs.FSDataOutputStream@1ee807c6
/testData/test1_R1.fq.lz4--------解压完成
------------------------------------------------开始解压下一个文件-------------------------------------------------------

结论 :
原始大小 : 6.3GB
压缩文件 : 74MB
压缩效率 : 110MB/s
压缩时间 : 54秒
解压效率 : 45.32MB/s
解压时间 : 7秒

4.统计压缩效率

压缩算法原始文件大小压缩文件大小压缩速度解压速度
Gzip6.3GB61MB53.16MB/s68MB/s
BZip26.3GB50MB3.4MB/s8.9MB/s
Default6.3GB61MB55.48MB/s17.2MB/s
Lzo6.3GB263MB105MB/s39MB/s
Lz46.3GB74MB110MB/s45.32MB/s

5.验证数据完整性

  • Gzip
[root@hadoop101 testData]# wc -l test1_R1.gz 
52216 test1_R1.gz
[root@hadoop101 testData]# 
[root@hadoop101 testData]# wc -l test1_R1.fq 
73189026 test1_R1.fq
[root@hadoop101 testData]# 

Gzip行数 52216 解压之后行数73189026

  • Bzip2
hejiahao@MountHua:~/package$ wc -l test1_R1.fq.bz2 
263703 test1_R1.fq.bz2
hejiahao@MountHua:~/package$ 
hejiahao@MountHua:~/package$ wc -l test1_R1.fq
73189026 test1_R1.fq
hejiahao@MountHua:~/package$ 

Bzip2文件行数 263703 解压之后行数73189026

测试结果报告


放大数据版测试报告

压缩算法原始文件大小压缩文件大小压缩速度解压速度
Gzip6.3GB61MB53.16MB/s68MB/s
BZip26.3GB50MB3.4MB/s8.9MB/s
Default6.3GB61MB55.48MB/s17.2MB/s
Lzo6.3GB263MB105MB/s39MB/s
Lz46.3GB74MB110MB/s45.32MB/s

其他数据版测试报告

压缩算法原始文件大小压缩文件大小压缩速度解压速度
Gzip1.9G721MB16.65MB/s23.35MB/s
BZip21.9G592M10.03MB/s15.26MB/s
Default1.9G721MB17.42MB/s26MB/s
Lzo1.9G1.1G35MB/s17MB/s
Lz41.9G1.239MS/s21MB/s

压缩时服务器性能

hejiahao@MountHua:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          32043        3144       11012           1       17886       28446
Swap:          8191           0        8191
hejiahao@MountHua:~$ 
  • 内存使用情况

total : 总数32043
used : 已使用 3144
free : 空闲数 11012
shared : 共享内存总额 0
buff/cache:(已用)的内存数 17886
available : 还剩内存 28446

数据是否丢失

  • Gzip
[root@hadoop101 testData]# wc -l test1_R1.gz 
52216 test1_R1.gz
[root@hadoop101 testData]# 
[root@hadoop101 testData]# wc -l test1_R1.fq 
73189026 test1_R1.fq
[root@hadoop101 testData]# 

Gzip行数 52216 解压之后行数73189026

  • Bzip2
hejiahao@MountHua:~/package$ wc -l test1_R1.fq.bz2 
263703 test1_R1.fq.bz2
hejiahao@MountHua:~/package$ 
hejiahao@MountHua:~/package$ wc -l test1_R1.fq
73189026 test1_R1.fq
hejiahao@MountHua:~/package$ 

Bzip2文件行数 263703 解压之后行数73189026

结论:数据未丢失

总结及建议采用格式

gzip压缩
  • 优点:
    • 压缩率比较高,而且压缩/解压速度也比较快;
    • hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;
    • 有hadoop native库;
    • 大部分linux系统都自带gzip命令,使用方便。
  • 缺点:不支持split。
lzo压缩
  • 优点:
    • 压缩/解压速度也比较快,合理的压缩率;
    • 支持split,是hadoop中最流行的压缩格式;
    • 支持hadoop native库;
    • 可以在linux系统下安装lzop命令,使用方便。
  • 缺点:
    • 压缩率比gzip要低一些;
    • hadoop本身不支持,需要安装;
    • 在应用中对lzo格式的文件需要做一些特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)。
bzip2压缩
  • 优点:
    • 支持split;
    • 具有很高的压缩率,比gzip压缩率都高;
    • hadoop本身支持,但不支持native;
    • 在linux系统下自带bzip2命令,使用方便。
  • 缺点:
    • 压缩/解压速度慢;
    • 不支持native。
建议
  • Bzip2 :
速度要求不高,但需要较高的压缩率的时候以及,
对单个很大的文本文件想压缩减少存储空间,同时又需要支持split,而且兼容之前的应用程序(即应用程序不需要修改)的情况。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值