生产环境LZO文件压缩map数问题解决

SDK采集数据每天打包成lzo文件上到大数据平台,由于lzo不支持spilt,一个文件不能被多个map并行处理。这样大数据计算资源未能充分利用。 
生产环境适合LZO么? 

适合,但需要做出相关处理,普通的HDFS文件是textfile,由于lzo不支持spilt,即一个文件不能被多个map并行处理,因此需要对textfile创建索引,以支持spilt。但是生产环境,这种方式不适合。
每天每个hive表的分区目录下,都有很多文件,如果要维护一个定时任务去创建索引,代价太大,也不方便,因此,我们可以用sequencefile的方式,用block做存储,就可以spilt的
需要二步:
按照分区lzo sequencefile压缩原始hive表的数据,其次按照sequencefile创建hive表(stored as sequencefile)在导入压缩后的数据。
 
生成环境运行建立压缩文件shell1、kinit -k -t /hadoop1/key/XXX.keytab XXX@HADOOP.COM(有认证问题,需要先执行kinit)
2、hadoop jar /hadoop1/cloudera-manager/parcel-rep
o/GPLEXTRAS-5.10.0-1.cdh5.10.0.p0.41/lib/hadoop/lib/hadoop-lzo-0.4.15-cdh5.10.0.jar com.hadoop.compression.lzo.DistributedLzoIndexer /XXX/XXX/XXX(hdfs目录) 
 

Administrator

知人不必言尽,留三分余地与人,留些口德与己。 责人不必苛尽,留三分余地与人,留些肚量与己。 才能不必傲尽,留三分余地与人,留些内涵与己。 锋芒不必露尽,留三分余地与人,留些深敛与己。 有功不必邀尽,留三分余地与人,留些谦让与己。

发表评论

电子邮件地址不会被公开。 必填项已用*标注