栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

CDH6安装、配置和使用LZO压缩

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CDH6安装、配置和使用LZO压缩

文章目录
  • 概述
  • 在CentOS7使用LZO压缩
  • CDH6安装配置LZO
    • 1、安装
    • 2、配置
    • 3、测试

概述
  • Lempel-Ziv-Oberhumer
    是一种 无损的 数据压缩算法
  • 实现它的一个自由软件工具是lzop
  • LZO压缩可用在HDFS,压缩数据并支持分片
在CentOS7使用LZO压缩

安装

yum install -y lzop
lzop命令常见参数说明
-v, --verbose查看过程信息
-d, --decompress, --uncompress解压
-t, --test检查压缩文件的完整性
-U, --unlink, --delete压缩或解压完成后,删除输入文件
-f, --force强制执行一些操作,例如覆盖文件

搞个文件

echo abc > a.txt

压缩

lzop -Uv a.txt

测试压缩文件的完整性

lzop -t a.txt.lzo

解压

lzop -dv a.txt.lzo
CDH6安装配置LZO 1、安装

主机=>Parcel=>配置

添加https://archive.cloudera.com/gplextras6/6.x.y/parcels/
其中x和y要替换为CDH的具体版本,我的是6.3.2

下载,分配,激活

查看hadoop-lzo.jar路径

2、配置

HDFS配置添加com.hadoop.compression.lzo.LzopCodec

HIVE配置的Hive 辅助 JAR 目录添加/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib

配置修改后重启服务

3、测试
  1. 生成1个10000000行的文件,约40G
vim a.py
from multiprocessing import Process
from os import system

def append_file(file_name='a.txt'):
    for i in xrange(100000):
        f1 = 'abcdefghij' * 400
        system('echo %s >> %s' % (f1, file_name))

def parallel(f, parallelism=100):
    pool = []
    for offset in range(parallelism):
        pool.append(Process(target=f))
    for p in pool:
        p.start()
    for p in pool:
        p.join()

parallel(append_file)
python a.py
  1. 压缩文件,上传到HDFS
# 压缩
lzop a.txt
ll -h | grep a.txt
# 上传
hadoop fs -put a.txt.lzo /user/hive/warehouse/
hadoop fs -ls -h /user/hive/warehouse/

压缩后文件190M,块大小128M,预期mapper数=2

  1. HIVE建表,数据装载
-- 建表
DROp TABLE IF EXISTS t;
CREATE TABLE t (f STRING)
STORED AS
  INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'
  OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
-- 数据装载
LOAD DATA INPATH '/user/hive/warehouse/a.txt.lzo' INTO TABLE t;
  1. 添加LZO索引
sudo -u hive 
hadoop jar 
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/hadoop-lzo.jar 
com.hadoop.compression.lzo.DistributedLzoIndexer 
/user/hive/warehouse/t/a.txt.lzo
  1. 查看mapper数(切片数)
SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
SELECT COUNT(1) FROM t;


Appendix

encn
deprecateˈdeprəkeɪtvt. 反对;抨击;轻视;声明不赞成
deprecatedˈdeprəkeɪtɪddeprecate 的过去式和过去分词
parcelˈpɑːrsln. <英>包裹,邮包;一批;一块土地(尤指地产的一部分);v. <英>把……包起来(parcel sth. up)
extrasˈekstrəzn. 附加设备;额外部分;另外收费的部分(extra的复数)
extraˈekstrəadj. 额外的;另外收费的;n. 另收费的事物;临时演员;(非击球所得的)附加分;adv. 额外
unlinkˌʌnˈlɪŋkvt. 解开……的环节;拆开;vi. 分开;分离

HIVE创建LZO表语法

STORED AS
  INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'
  OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

创建LZO索引语法

hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer big_file.lzo

HIVE查询LZO表语法

SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/895714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号