Hadoop之Lzo压缩配置

一、hadoop-lzo编译

hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下。

  1. 环境准备
    maven(下载安装,配置环境变量,修改sitting.xml加阿里云镜像)
    gcc-c++
    zlib-devel
    autoconf
    automake
    libtool
    通过yum安装即可,yum -y install gcc-c++ lzo-devel zlib-devel autoconf automake libtool

  2. 下载、安装并编译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

  3. 编译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创建索引

  1. 创建LZO文件的索引,LZO压缩文件的可切片特性依赖于其索引,故我们需要手动为LZO压缩文件创建索引。若无索引,则LZO文件的切片只有一个。

    hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer big_file.lzo
    
  2. 测试
    (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
    

  3. 注意:如果以上任务,在运行过程中报如下异常
    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压缩配置相关推荐

  1. Hadoop支持LZO压缩配置

    支持LZO压缩配置 hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件.hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下. hadoop ...

  2. Hadoop LZO压缩配置

    1.压缩配置 1)hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件.hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下. Hadoop支 ...

  3. hadoop3.x支持LZO压缩配置

    前提 在hadoop中使用lzo的压缩算法可以减小数据的大小和数据的磁盘读写时间,不仅如此,lzo是基于block分块的,这样他就允许数据被分解成chunk,并行的被hadoop处理.这样的特点,就可 ...

  4. hadoop使用lzo压缩文件笔记

    LZO性能 编译LZO 下载:

  5. 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 ...

  6. hadoop配置支持LZO压缩格式

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 简介 安装lzo lzo并不是linux系统原生支持,所以需要下载安装软件包.这里至少需要安装3个软件包:lzo ...

  7. HDFS和Spark配置LZO压缩,Spark读取LZO创建正常Task数量

    1.说明 为了解决,数据日益增长并且目前使用Snappy压缩导致的Spark读取时会出现OOM,并且处理起来速度过慢的问题,决定使用LZO+Index来解决问题. 线上Hadoop版本3.2.1,Sp ...

  8. Hadoop之使用LZO压缩并支持分片

    1.简介: 安装LZO: lzo并不是Linux系统原生支持,所以需要下载安装软件包,这里至少需要安装3个软件包. lzo, lzop, hadoop-gpl-packaging. 增加索引: gpl ...

  9. Hive之配置和使用LZO压缩

    前言 OS:CentOS 7 Hive:2.3.0 Hadoop:2.7.7 MySQL Server:5.7.10 Hive官方手册:LanguageManual LZO 在配置Hive使用lzo压 ...

最新文章

  1. 深入浅出 Javascript API(五)--Query Find 查询
  2. LeetCode Algorithm 606. 根据二叉树创建字符串
  3. 【USACO15DEC】最大流Max Flow
  4. Jeecg-Boot上传附件异常问题处理
  5. 遥感、制图学中各种图的区别
  6. Lottie-iOS的应用及部分源码分析
  7. Django项目中集成富文本编辑器的通用方法,适合KindEditor,xhEditor,NicEditor,wymeditor等 .
  8. 只安装mysql的centos_centos6 只安装mysql client(安装包安装和yum安装mysql)
  9. TP-LINK WR703N 变砖救活
  10. python将图片转为矢量图
  11. uiautomatorviewer报错解决
  12. Seguros Sura选择Akur8来提升其在拉美市场的保险定价流程
  13. 学习python的难点
  14. php 简转繁体,PHP将简体汉字转为繁体的方法
  15. ubuntu16.04安装GTX-960M nvidia-384驱动
  16. STC单片机简单控制直流电机正反转
  17. 机器视觉-相机标定及畸变矫正
  18. 2023最新萤火商城源码 V2.0版+全开源的
  19. Matlab去模糊/图像复原(DOING)
  20. pythonturtle画飞机_如何用 Python 画一个纸飞机?| 原力计划

热门文章

  1. c语言程序设计if函数题目,if函数套用练习题.doc
  2. jq多选按钮值_jQuery实现获取选中复选框的值实例详解
  3. 获取处于选中状态的checkbox的id值
  4. 计算机图形学14:三维图形的投影变换
  5. 在c++中用编程画一个圆
  6. pb 如何导出csv_打开CSV格式文件?英雄请留步
  7. 如何找回u盘被删除的文件
  8. android 锁屏后定时器,iOS锁屏或者后台计时器定时解决方法
  9. matlab 龙格-库塔 法求解常微分方程
  10. 分享6个优质的黑科技APP,简约良心还免费