16hive压缩以及配置

一、Hadoop源码编译支持snappy压缩

(可省略查看)(可按照“17”中的“1.修改*”来配置,无需自己编译)

1.资源准备(jar包)
	(1)hadoop-2.7.2-src.tar.gz
	(2)jdk-8u144-linux-x64.tar.gz
	(3)snappy-1.1.3.tar.gz
	(4)apache-maven-3.0.5-bin.tar.gz
	(5)protobuf-2.5.0.tar.gz
		
		
2.jar包安装(注意使用root用户)
	2.1--JKD解压,java环境,验证
		tar -zxvf jdk-8u144-linux-x64.tar.gz -C /root/app/
		vi /etc/profile
			#JAVA_HOME
			export JAVA_HOME=/root/app/jdk1.8.0_144
			export PATH=$PATH:$JAVA_HOME/bin
		source /etc/profile
		java-version
		
	2.2--Maven解压,maven环境,验证
		tar -zxvf apache-maven-3.0.5-bin.tar.gz
		vi /etc/profile
			#MAVEN_HOME
			export MAVEN_HOME=/opt/module/apache-maven-3.0.5
			export PATH=$PATH:$MAVEN_HOME/bin
		source /etc/profile
		mvn-version

		
3.编译源码
	3.1--准备编译环境
		yum install svn
		yum install autoconf automake libtool cmake
		yum install ncurses-devel
		yum install openssl-devel
		yum install gcc*

	3.2--编译安装snappy
		tar -zxvf snappy-1.1.3.tar.gz -C /root/app/
		cd /root/app/snappy-1*
		./configure
		make
		make install
		# 查看snappy库文件
		ls -lh /usr/local/lib | grep snappy

	3.3--编译安装protobuf
		tar -zxvf protobuf-2.5.0.tar.gz -C /root/app/
		cd /root/app/protobuf-2*
		./configure
		make 
		make install
		# 查看protobuf版本以测试是否安装成功
		protoc --version
		
	3.4--编译hadoop native
		tar -zxvf hadoop-2.7.2-src.tar.gz
		cd root/app/hadoop-2.7.2-src/
		mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy
			执行成功后,/root/app/hadoop-2.7.2-src/hadoop-dist/target/hadoop-2.7.2.tar.gz
			即为新生成的支持snappy压缩的二进制安装包。

二、Hadoop压缩配置

1.MR支持的压缩编码
	http://google.github.io/snappy/

2.压缩参数配置
	io.compression.codecs(在mapred-site.xml中配置)
	
3.开启Map输出阶段压缩
	开启map输出阶段压缩可以减少job中map和Reduce task间数据传输量。
	具体配置如下:
		(1)开启hive中间传输数据压缩功能
			set hive.exec.compress.intermediate=true;
			
		(2)开启mapreduce中map输出压缩功能
			set mapreduce.map.output.compress=true;
			
		(3)设置mapreduce中map输出数据的压缩方式
			set mapreduce.map.output.compress.codec
			=org.apache.hadoop.io.compress.SnappyCodec;
		
		(4)执行查询语句
			select count(ename) name from emp;

4.开启Reduce输出阶段压缩
	当Hive将输出写入到表中时,输出内容同样可以进行压缩。属性hive.exec.compress.output控制着这个功能。
	用户可能需要保持默认设置文件中的默认值false,这样默认的输出就是非压缩的纯文本文件了。
	用户可以通过在查询语句或执行脚本中设置这个值为true,来开启输出结果压缩功能。
	具体配置如下:
		(1)开启hive最终输出数据压缩功能
			set hive.exec.compress.output=true;
					
		(2)开启mapreduce最终输出数据压缩
			set mapreduce.output.fileoutputformat.compress=true;
			
		(3)设置mapreduce最终数据输出压缩方式
			set mapreduce.output.fileoutputformat.compress.codec =
			org.apache.hadoop.io.compress.SnappyCodec;
			
		(4)设置mapreduce最终数据输出压缩为块压缩
			set mapreduce.output.fileoutputformat.compress.type=BLOCK;
			
		(5)测试一下输出结果是否是压缩文件
			insert overwrite local directory '/root/hivedate/distribute-result' 
			select * from emp distribute by deptno sort by empno desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao难懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值