Spark程序中如何启用lzo压缩?

什么是lzo?

LZO是一个无损的数据压缩库,相比于压缩比它更加追求速度,官网地址是:http://www.oberhumer.com/opensource/lzo/,相比gzip,bzip,lzo的压缩率不高,但是压缩、解压速度都比较高。

启用lzo的压缩方式对于小规模集群是很有用处,压缩比率大概能降到原始日志大小的1/3。同时压缩和解压缩的速度也比较快。

本文讲解如何在hadoop集群中配置lzo,并在spark中启动lzo

本文测试使用的软件版本是:Centos 7.7、HDP 3.1.5、Spark 2.4、Lzo使用最新版0.4.21

如何安装配置lzo?

安装lzop

curl -O http://www.lzop.org/download/lzop-1.03.tar.gz
tar xzvf lzop-1.03.tar.gz
cd lzop-1.03/
./configure
make
make install

ln -s /usr/local/bin/lzop /usr/bin/lzop

#测试
lzop -V
lzop -h

安装lzo

curl -O http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz

tar -zxvf lzo-2.10.tar.gz
cd lzo-2.10
export CFLAGS=-m64
./configure -enable-shared
make
make install

#配置
vim /etc/ld.so.conf.d/lzo.conf
# 添加如下内容
/usr/local/lib
#使以上配置生效
/sbin/ldconfig -v 

#删除安装包
rm -rf lzo-2.10 lzo-2.10.tar.gz

hadoop-lzo的编译&打包

curl -O https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
tar -zxvf apache-maven-3.8.5-bin.tar.gz
mv apache-maven-3.8.5 maven

# 下载 https://github.com/twitter/hadoop-lzo 的master
unzip hadoop-lzo-master.zip
cd hadoop-lzo-master/

# 编译 & 打包
export CFLAGS=-m64
export CXXFLAGS=-m64
export C_INCLUDE_PATH=/usr/local/include/lzo
export LIBRARY_PATH=/usr/local/lib

../maven/bin/mvn clean package -Dmaven.test.skip=true

export HADOOP_HOME=/usr/hdp/3.1.5.0-152/hadoop
cp target/native/Linux-amd64-64/lib/* $HADOOP_HOME/lib/native/
cp target/hadoop-lzo-0.4.21-SNAPSHOT.jar $HADOOP_HOME

修改Hadoop配置

在hadoop的core-site.xml文件中增加如下lzo相关配置:

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

以上是针对单台机器的操作,如果是集群,则还需要做如下步骤:

  • 将hadoop下新加入的so文件、jar包,还有修改的core-site.xml分发给集群其他节点
  • 重启hadoop集群

Spark下启用LZO

修改配置文件

修改spark配置文件spark-defaults.conf

vim spark-defaults.conf

#增加如下配置,$HADOOP_HOME可以改为自己的hadoop路径
spark.driver.extraClassPath $HADOOP_HOME/hadoop-lzo-0.4.21-SNAPSHOT.jar
spark.executor.extraClassPath $HADOOP_HOME/hadoop-lzo-0.4.21-SNAPSHOT.jar

修改spark-env.sh

vim spark-env.sh

#增加如下配置
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native
export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:$HADOOP_HOME/lib/native

export SPARK_CLASSPATH=/usr/hdp/current/tez-client:/usr/hdp/current/tez-client/lib:/usr/hdp/current/hive-client/lib:$SPARK_CLASSPATH

HADOOP_CONF_DIR=/etc/hadoop/conf
SPARK_MASTER_WEBUI_PORT=9090
export JAVA_HOME=/usr/java/jdk1.8.0_60
export HIVE_HOME=/usr/hdp/current/hive-client/bin
export SPARK_HISTORY_OPTS="-Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs:///spark2.4-history"
export HDP_VERSION=2.6.2.14-5

分发重启Spark

如果是spark集群,则需要分发以上的hadoop-lzo-0.4.21-SNAPSHOT.jar及配置。

参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

enjoy编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值