Hadoop之Lzo压缩配置
Hadoop之Lzo压缩配置
一、hadoop-lzo编译
hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下。
环境准备
maven(下载安装,配置环境变量,修改sitting.xml加阿里云镜像)
gcc-c++
zlib-devel
autoconf
automake
libtool
通过yum安装即可,yum -y install gcc-c++ lzo-devel zlib-devel autoconf automake libtool下载、安装并编译LZO
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
tar -zxvf lzo-2.10.tar.gz
cd lzo-2.10
./configure -prefix=/usr/local/hadoop/lzo/
make
make install
编译hadoop-lzo源码
2.1 下载hadoop-lzo的源码,下载地址:https://github.com/twitter/hadoop-lzo/archive/master.zip
2.2 解压之后,修改pom.xml
<hadoop.current.version>3.1.3</hadoop.current.version>
2.3 声明两个临时环境变量
export C_INCLUDE_PATH=/usr/local/hadoop/lzo/includeexport LIBRARY_PATH=/usr/local/hadoop/lzo/lib
2.4 编译
进入hadoop-lzo-master,执行maven编译命令mvn package -Dmaven.test.skip=true
2.5 进入target,hadoop-lzo-0.4.21-SNAPSHOT.jar 即编译成功的hadoop-lzo组件
二、Hadoop相关配置
1)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-3.1.3/share/hadoop/common/
[hadoop@hadoop102 common]$ pwd
/opt/module/hadoop-3.1.3/share/hadoop/common
[hadoop@hadoop102 common]$ ls
hadoop-lzo-0.4.20.jar
2)同步hadoop-lzo-0.4.20.jar到hadoop103、hadoop104
[hadoop@hadoop102 common]$ xsync hadoop-lzo-0.4.20.jar
3)core-site.xml增加配置支持LZO压缩
<configuration><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,org.apache.hadoop.io.compress.SnappyCodec,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>
</configuration>
4)同步core-site.xml到hadoop103、hadoop104
[hadoop@hadoop102 hadoop]$ xsync core-site.xml
5)启动及查看集群
[hadoop@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
[hadoop@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
三、项目经验之LZO创建索引
创建LZO文件的索引,LZO压缩文件的可切片特性依赖于其索引,故我们需要手动为LZO压缩文件创建索引。若无索引,则LZO文件的切片只有一个。
hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer big_file.lzo
测试
(1)将bigtable.lzo(200M)上传到集群的根目录[hadoop@hadoop102 module]$ hadoop fs -mkdir /input [hadoop@hadoop102 module]$ hadoop fs -put bigtable.lzo /input
(2)执行wordcount程序
[hadoop@hadoop102 module]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce- examples-3.1.3.jar wordcount -Dmapreduce.job.inputformat.class=com.hadoop.mapreduce.LzoTextInputFormat /input /output1
(3)对上传的LZO文件建索引
[hadoop@hadoop102 module]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /input/bigtable.lzo
(4)再次执行WordCount程序
[hadoop@hadoop102 module]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce- examples-3.1.3.jar wordcount -Dmapreduce.job.inputformat.class=com.hadoop.mapreduce.LzoTextInputFormat /input /output2
注意:如果以上任务,在运行过程中报如下异常
Container [pid=8468,containerID=container_1594198338753_0001_01_000002] is running 318740992B beyond the ‘VIRTUAL’
memory limit. Current usage: 111.5 MB of 1 GB physical memory used; 2.4 GB of 2.1 GB virtual memory used.
Killing container.
Dump of the process-tree for container_1594198338753_0001_01_000002 :
解决办法:在hadoop102的/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml文件中增加如下配置,然后分发到hadoop103、hadoop104服务器上,并重新启动集群。
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property><!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>
Hadoop之Lzo压缩配置相关推荐
- Hadoop支持LZO压缩配置
支持LZO压缩配置 hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件.hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下. hadoop ...
- Hadoop LZO压缩配置
1.压缩配置 1)hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件.hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下. Hadoop支 ...
- hadoop3.x支持LZO压缩配置
前提 在hadoop中使用lzo的压缩算法可以减小数据的大小和数据的磁盘读写时间,不仅如此,lzo是基于block分块的,这样他就允许数据被分解成chunk,并行的被hadoop处理.这样的特点,就可 ...
- hadoop使用lzo压缩文件笔记
LZO性能 编译LZO 下载:
- Hadoop配置lzo压缩
前言 OS:CentOS 7 hadoop:2.7.7 lzo:lzo-2.10 Apache Maven:3.6.0 JDK:1.8.0_221 hadoop-lzo是一个围绕lzo压缩算法实现的M ...
- hadoop配置支持LZO压缩格式
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 简介 安装lzo lzo并不是linux系统原生支持,所以需要下载安装软件包.这里至少需要安装3个软件包:lzo ...
- HDFS和Spark配置LZO压缩,Spark读取LZO创建正常Task数量
1.说明 为了解决,数据日益增长并且目前使用Snappy压缩导致的Spark读取时会出现OOM,并且处理起来速度过慢的问题,决定使用LZO+Index来解决问题. 线上Hadoop版本3.2.1,Sp ...
- Hadoop之使用LZO压缩并支持分片
1.简介: 安装LZO: lzo并不是Linux系统原生支持,所以需要下载安装软件包,这里至少需要安装3个软件包. lzo, lzop, hadoop-gpl-packaging. 增加索引: gpl ...
- Hive之配置和使用LZO压缩
前言 OS:CentOS 7 Hive:2.3.0 Hadoop:2.7.7 MySQL Server:5.7.10 Hive官方手册:LanguageManual LZO 在配置Hive使用lzo压 ...
最新文章
- 深入浅出 Javascript API(五)--Query Find 查询
- LeetCode Algorithm 606. 根据二叉树创建字符串
- 【USACO15DEC】最大流Max Flow
- Jeecg-Boot上传附件异常问题处理
- 遥感、制图学中各种图的区别
- Lottie-iOS的应用及部分源码分析
- Django项目中集成富文本编辑器的通用方法,适合KindEditor,xhEditor,NicEditor,wymeditor等 .
- 只安装mysql的centos_centos6 只安装mysql client(安装包安装和yum安装mysql)
- TP-LINK WR703N 变砖救活
- python将图片转为矢量图
- uiautomatorviewer报错解决
- Seguros Sura选择Akur8来提升其在拉美市场的保险定价流程
- 学习python的难点
- php 简转繁体,PHP将简体汉字转为繁体的方法
- ubuntu16.04安装GTX-960M nvidia-384驱动
- STC单片机简单控制直流电机正反转
- 机器视觉-相机标定及畸变矫正
- 2023最新萤火商城源码 V2.0版+全开源的
- Matlab去模糊/图像复原(DOING)
- pythonturtle画飞机_如何用 Python 画一个纸飞机?| 原力计划