CentOS,大数据集群Hadoop搭建,配置支持LZO数据压缩格式

LZO压缩

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.sh hadoop-lzo-0.4.20.jar

xsync.sh脚本

#!/bin/bash

# 获取输出参数 如果没有参数则直接返回
pcount=$#
if [ $pcount -eq 0 ]
then
    echo "没有参数无法运行!";
    exit;
fi

# 获取传输文件名
p1=$1
filename=`basename $p1`
echo "加载文件: $p1 成功 !"

# 获取文件的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo "文件的全路径是: $pdir"

 
# 同步用户
user='admin'

# 同步主机
for host in node52 node53
do
    echo "================当前主机是 $host================="
    rsync -rvl $pdir/$filename $user@$host:$pdir
done

echo "已完成 !"

配置文件:/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml,增加


    io.compression.codecs
    
        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
    



    io.compression.codec.lzo.class
    com.hadoop.compression.lzo.LzoCodec

同步至其他Hadoop集群

xsync.sh core-site.xml

重启hadoop集群

hdp.sh start
hdp.sh stop

hdp.sh脚本

#!/bin/bash

# $#传递给脚本或函数的参数个数
# -lt //less than小于
if [ $# -lt 1 ]
then
    echo "没有参数无法运行..."
    exit ;
fi

case $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 node53
do
   echo "================当前主机是 $host================="
   # $* 所有参数列表
   ssh $user@$host "$*"
done

echo "已完成 !"

测试,上传文件

hadoop fs -mkdir /input
hadoop 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

展开阅读全文

页面更新:2024-04-23

标签:集群   文件名   算法   脚本   路径   参数   主机   格式   数据压缩   文件   测试   数据   用户

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top