hive LZO压缩_maven lzo压缩

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

  • id
  • first name
  • last name

向这个数据文件中插入4条记录:

19630001    john    lennon
19630002    paul    mccartney
19630003    george  harrison
19630004    ringo   starr

调用这个数据文件 /home/hivedata/lzodata.txt.

为了使它成为LZO文件,我们可以使用lzop应用程序,它将创建一个名字类似 lzodata.txt.lzo 的文件。把这个文件拷贝到HDFS中。

1.2 lzo的安装测试
1.2.1 lzo安装环境准备

要在Hadoop集群中每个节点里安装lzo 和lzop 。安装的细节不在本文档中进行叙述。但是我这里讲解下安装过程。安装lzo和lzop步骤如下:

在hadoop集群每个节点上安装lzo和lzop及其依赖(主要为解决安装lzop):
[root@hadoop01 ~]# yum -y install *lzo*    (仅linux使用即可,和hadoop集群并无太大关系)

1.2.2 lzo源码编译安装
源码编译安装lzo(因为hadoop-lzo需要编译中的一些 包和扩展.so):
安装准备:
[root@hadoop01 home]# yum -y install gcc-c++ lzo-devel zlib-devel autoconf automake libtool
​
编译安装:
下载路径:http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
​
解压下载的源码:
[root@hadoop01 home]# tar -zxvf /home/lzo-2.10.tar.gz
​
​
[root@hadoop01 home]# cd /home/lzo-2.10/
[root@hadoop01 lzo-2.10]# ./configure -prefix=/usr/local/lzo/
[root@hadoop01 lzo-2.10]# make
[root@hadoop01 lzo-2.10]# make install
1.2.3 hadoop-lzo源码编译安装
编译hadoop-lzo源码(使用mvn编译):
1、下载源码
https://github.com/twitter/hadoop-lzo/archive/master.zip
2、上传到服务器,并解压,修改pom.xml
​
[root@hadoop01 home]# unzip /home/hadoop-lzo-master.zip
[root@hadoop01 home]# cd /home/hadoop-lzo-master
​
编辑pom.xml文件,搜索内容hadoop.current并修改版本号:
<hadoop.current.version>2.7.1</hadoop.current.version>
​
3、使用maven编译(默认maven已经安装)
 export C_INCLUDE_PATH=/usr/local/lzo/include
 export LIBRARY_PATH=/usr/local/lzo/lib
 
 4、编译
 [root@hadoop01 hadoop-lzo-master]# mvn package -Dmaven.test.skip=true
​
5、进入target,将hadoop-lzo-0.4.21-SNAPSHOT.jar放到hadoop的classpath下。如${HADOOP_HOME}/share/hadoop/common
​
[root@hadoop01 hadoop-lzo-master]# cp ./target/hadoop-lzo-0.4.21-SNAPSHOT.jar /usr/local/hadoop-2.7.1/share/hadoop/common/
​
分发到其它服务器:
[root@hadoop01 hadoop-lzo-master]# scp ./target/hadoop-lzo-0.4.21-SNAPSHOT.jar hadoop02:/usr/local/hadoop-2.7.1/share/hadoop/common/
hadoop-lzo-0.4.21-SNAPSHOT.jar                                                           
[root@hadoop01 hadoop-lzo-master]# scp ./target/hadoop-lzo-0.4.21-SNAPSHOT.jar hadoop03:/usr/local/hadoop-2.7.1/share/hadoop/common/
hadoop-lzo-0.4.21-SNAPSHOT.jar 
1.2.4 hadoop集群配置修改
在core-stie.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,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
​
分发到每台服务器:
[root@hadoop01 hadoop-2.7.1]# scp -r ./etc/hadoop/core-site.xml hadoop02:/usr/local/hadoop-2.7.1/etc/hadoop/
[root@hadoop01 hadoop-2.7.1]# scp -r ./etc/hadoop/core-site.xml hadoop03:/usr/local/hadoop-2.7.1/etc/hadoop/
​
重启hadoop集群:
[root@hadoop01 hadoop-2.7.1]# start-all.sh
1.2.5 创建hive表测试lzo
CREATE TABLE lzo_test(
id bigint,  
firstname string,
lastname string
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS  INPUTFORMAT "com.hadoop.mapred.DeprecatedLzoTextInputFormat" 
OUTPUTFORMAT "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
;
​
-- 注意:
报错为:com.hadoop.mapred.DeprecatedLzoTextInputFormat not found....
-- 解决方法:
将hadoop和lzo中间件包放到hadoop的classpath目录即可。
1.2.6 hive表加载lzo数据
将/home/hivedata/lzodata.txt使用lzop生成.lzo文件:
[root@hadoop01 hivedata]# lzop ./lzodata.txt 
​
LOAD DATA Local INPATH '/home/hivedata/lzodata.txt.lzo' INTO TABLE lzo_test;
​
LOAD DATA Local INPATH '/home/hivedata/lzodata' INTO TABLE lzo_test;
​
-- 测试lzo压缩后的数据
hive> select * from lzo_test;
OK
19630001        john    lennon
19630002        paul    mccartney
19630003        george  harrison
19630004        ringo   starr
Time taken: 0.097 seconds, Fetched: 4 row(s)
1.2.7 lzo的索引文件
1. 批量lzo文件修改
[root@hadoop01 hivedata]# hadoop jar /usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-lzo-0.4.21-SNAPSHOT.jar com.hadoop.compression.lzo.DistributedLzoIndexer /user/hive/warehouse/qf24.db/lzo_test/
​
2. 单个lzo文件修改
[root@hadoop01 hivedata]# hadoop jar /usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-lzo-0.4.21-SNAPSHOT.jar com.hadoop.compression.lzo.DistributedLzoIndexer /user/hive/warehouse/lzo_test/lzodata.txt.lzo
​
注意:
1、使用mr执行,并且会生成索引文件。
2、lzo本身是不支持split的。故如果需要使用lzo,一般有2种办法:
1)合理控制生成的lzo文件大小,建议不要超过一个block大小。因为如果没有lzo的index文件,该lzo会由一个map处理。如果lzo过大,会导致某个map处理时间过长。
2)配合lzo.index文件使用。好处是文件大小不受限制,可以将文件设置的稍微大点,这样有利于减少文件数目。坏处是生成lzo.index文件本身需要开销。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)**

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值