推特压缩文件怎么解压啊安卓()
本文环境介绍:
软件版本备注centos6.5hadoop2.7.12.7.*即可hive2.3.6lzo2.10需要独立安装
1 lzo压缩1.1 lzo的简介
LZO是一个无损的数据压缩库,相比于压缩比它更加追求速度。 查阅官网地址:http://www.oberhumer.com/opensource/lzo http://www.lzop.org 或缺更多有关 LZO的信息 and 查阅压缩数据存储格式 获取有关Hive压缩数据存储信息。hadoop下各种压缩算法的压缩比,压缩时间,解压时间见下表:压缩算法 原始文件大小 压缩后的文件大小 压缩速度 解压缩速度gzip 8.3GB 1.8GB 17.5MB/s 58MB/sbzip2 8.3GB 1.1GB 2.4MB/s 9.5MB/sLZO-bset 8.3GB 2GB 4MB/s 60.6MB/sLZO 8.3GB 2.9GB 49.3MB/S 74.6MB/slzo的压缩率不高,但是压缩、解压速度都比较高。
启用lzo
启用lzo的压缩方式对于小规模集群是很有用处,压缩比率大概能降到原始日志大小的1/3。同时压缩和解压缩的速度也比较快。
lzo的官方介绍:
安装lzo
lzo并不是linux系统原生支持,所以需要下载安装软件包。这里至少需要安装3个软件包:lzo, lzop, hadoop-gpl-packaging。
hive lzo官网案例:
假设一个有三列的简单数据文件。
idfirst namelast name
向这个数据文件中插入4条记录:
19630001 john lennon19630002 paul mccartney19630003 george harrison19630004 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及其依赖:[root@hadoop01 ~]# yum -y install *lzo*
1.2.2 lzo源码编译安装
源码编译安装lzo:安装准备:[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源码:1、下载源码https://github.com/twitter/hadoop-lzo/archive/master.zip2、上传到服务器,并解压,修改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编译 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=true5、进入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 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;OK19630001 john lennon19630002 paul mccartney19630003 george harrison19630004 ringo starrTime taken: 0.097 seconds, Fetched: 4 row
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文件本身需要开肖。
1.2.8 修改索引文件后查询测试
select id,firstname from lzo_test limit 3;
1.2.9 更新表输入为lzo格式
ALTER TABLE lzo_test SET FILEFORMAT INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat" SERDE "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe";--注:更新表的输入为lzo后,则该表下的数据需要是lzo压缩后的,否则查询出来是空或者是报错数据格式不识别。
海外精品引流脚本–最强海外引流
唯一TG:https://t.me/Facebook181818
更多海外引流脚本方案
如果你需要脚本演示、部署咨询或海外获客方案,可以通过下面入口继续查看。
