大数据中压缩的使用

前言

离线处理和批处理 无论公司大小,都是类似的
大部分是日志
Compression 压缩 磁盘少 节省空间,减少开销 ,缺点:加大cpu的开销,如果你生生产上CPU很紧缺, 就不建议使用压缩了
lossless √没有损失的压缩 生产上肯定用这个 压缩不丢失 上产和学习在这个方面
Lossy 有小部分丢失

一:压缩格式的介绍和对比

大数据中压缩的使用
其中要注意的是否支持分割
bzip2是支持分割的,
而loz是yes if indexed 输入索引,如果有索引就能分割

Compression Format: gzip/bzip2/lzo/snappy
Split 压缩在文件的是否支持分割,如果不能分割就要用task
大数据上要分流而至
查询hadoop是否支持压缩
在bin目录下面 hadoop checknative 执行这个命令
Hadoop需要编译一下
在lib下面 有个native 这里需要自己编译
寻找博客自己编译
Lzo就这个压缩,需要一额外的插件架包 其他的都是hadoop的压缩
压缩比和压缩速度是成反比的

二:压缩比

格式:以它为例子
8 core i7 CPU
• 8GB memory
• 64 bit CentOS
• 1.4GB Wikipedia Corpus 2-gram text input
大数据中压缩的使用

三:压缩在hadoop中的应用

大数据中压缩的使用
Compression in Hadoop 配置文件 这里配置工作当中你将要用到的所有压缩在要在这里配置

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    在hadoop文件下面 
    <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>   
       在哪里查到 hadoop.apache.org 在左下角,配置文件中

四:整个生产中的过程

大数据中压缩的使用

五注意:

大数据中压缩的使用

六:操作

  创建一张表  在hive上创建的表格
create table page_views(
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'  
   查看一下表,然后加载数据进来 

create table page_views_bzip2    
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
as select * from page_views;

CTAS
   
load data local inpath '/home/hadoop/data/page_views.dat' overwrite into table page_views; 
   
set key=value;
set key;   
  
set hive.exec.compress.output;  这个参数是是否使用压缩输出

这是默认的压缩形式
Set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.DefaultCodec
我们可以更改为我们自己认为的形式BZIp2
 
Set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.BZIp2Codec;
 我们可以看一下   
Set mapreduce.output.fileoutputformat.compress.codec;
我们在创建一张表   这张表相当于把数据导进来 

create table page_views_bzip2    
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
as select * from page_views;
看一下数据量  看一下原来数据量和现在数据量的都是多少,不要有丢失 
Select count(1)from page_views:
Select count(1)from page_views_bzip2;
然后看一下大小 
Hadoop fs -du -h 加上他的路径 
上一篇:第七天 位置参数 变量运算if case || && find locate compress


下一篇:【_Maiko_的C++练习】洛谷 P1046 [NOIP2005 普及组] 陶陶摘苹果