发布时间:2026-07-20阅读(1)
LZO,Lempel-Ziv-Oberhumer
致力于解压速度的一种数据压缩算法,是无损算法,实现它的一个自由软件工具是lzop。最初的库是用ANSI C编写、并且遵从GNU通用公共许可证发布的,LZO 有用于 Perl、Python 以及Java各种版本。
hadoop-LZO
Hadoop本身并不支持lzo压缩,需要使用twitter提供的hadoop-lzo开源组件,编译需依赖hadoop和lzo进行,地址:https://github.com/kevinweil/hadoop-lzo,编译后为:hadoop-lzo-0.4.20.jar。
Hadoop配置LZO压缩上传编译后的jar
目录:/opt/module/hadoop-3.1.3/share/hadoop/common
同步至其他Hadoop集群
xsync.shhadoop-lzo-0.4.20.jar
xsync.sh脚本
#!/bin/bash# 获取输出参数 如果没有参数则直接返回pcount=$#if [ $pcount -eq 0 ]then echo "没有参数无法运行!"; exit;fi# 获取传输文件名p1=$1filename=`basename $p1`echo "加载文件: $p1 成功 !"# 获取文件的绝对路径pdir=`cd -P $(dirname $p1); pwd`echo "文件的全路径是: $pdir" # 同步用户user=admin# 同步主机for host in node52 node53do echo "================当前主机是 $host=================" rsync -rvl $pdir/$filename $user@$host:$pdirdoneecho "已完成 !"
配置文件:/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml,增加
<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集群
xsync.shcore-site.xml
重启hadoop集群
hdp.sh starthdp.sh stop
hdp.sh脚本
#!/bin/bash# $#传递给脚本或函数的参数个数# -lt //less than小于if [ $# -lt 1 ]then echo "没有参数无法运行..." exit ;ficase $1 in"start") echo "================启动 hadoop集群=================" echo " --------------- 启动 hdfs ---------------" ssh node53 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh" echo " --------------- 启动 yarn ---------------" ssh node54 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh" echo " --------------- 启动 historyserver ---------------" ssh node53 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver";;"stop") echo "================关闭 hadoop集群=================" echo " --------------- 关闭 historyserver ---------------" ssh node53 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver" echo " --------------- 关闭 yarn ---------------" ssh node54 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh" echo " --------------- 关闭 hdfs ---------------" ssh node53 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh";;*) echo "输出参数错误...";;esac
查看Hadoop进程
xcall.sh jps
xcall.sh脚本
#!/bin/bash# 用户user=admin# 主机for host in node52 node53do echo "================当前主机是 $host=================" # $* 所有参数列表 ssh $user@$host "$*"doneecho "已完成 !"
测试,上传文件
hadoop fs -mkdir /inputhadoop fs -put R.txt /input

测试,执行wordcount程序
hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar \wordcount -Dmapreduce.output.fileoutputformat.compress=true \-Dmapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzoCodec \/input /output

相关参数参考:
https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图