IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> CDH6安装、配置和使用LZO压缩 -> 正文阅读

[大数据]CDH6安装、配置和使用LZO压缩

概述

  • 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

en🔉cn
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;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:42:19  更:2022-05-18 17:42:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:17:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码