MR作业提交时指定第三方依赖jar

前言

在提交MR作业时,如何将第三方依赖的jar追加运行环境

解决方法

首先构建一个项目基本架构,包括bin、lib等文件夹,,如下:

[lqz@test app]$ tree .
.
├── bin
│   └── startup.sh
└── lib
    ├── aopalliance-1.0.jar
    ├── ......
    ├── hbase-load-0.0.1-SNAPSHOT.jar
    ├── ......
    └── zookeeper-3.4.10.jar

2 directories, 139 files
[lqz@test app]$ 

一般需要将MR提交封装成脚本(startup.sh)中,以便进行启动,例如如下脚本:

#!/bin/sh

INPUT_PATH=$1
OUTPUT_PATH=$2
HBASE_TABLE=$3

echo "============INPUT_PATH: $INPUT_PATH ============="
echo "============OUTPUT_PATH: $OUTPUT_PATH ============="
echo "============HBASE_TABLE: $HBASE_TABLE ============="

for JAR in `ls ../lib/*.jar`
do
    LIBJARS=$JAR,$LIBJARS
    HADOOPCLASSPATH=$JAR:$HADOOPCLASSPATH
done

export LIBJARS=$LIBJARS

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOPCLASSPATH

yarn jar ../lib/hbase-load-0.0.1-SNAPSHOT.jar "${INPUT_PATH}" "${OUTPUT_PATH}" "${HBASE_TABLE}" \
-libjars $LIBJARS

注意事项

针对封装到脚本中的命令:yarn jar hbase-load-0.0.1-SNAPSHOT.jar [arguments] ,如果在进行打包的时候,已经将程序入口类写在了MANIFEST.MF里面, 那么jar包后边不要再指定程序入口类,如下截图:

如果没在MANIFEST.MF指定程序入口类,那么就需要在命令指定,即,yarn jar hbase-load-0.0.1-SNAPSHOT.jar com.lqz.hbase.load.Main [arguments] 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值