如何覆盖oozie工作流中的hadoop依赖关系?

wwwo4jvm  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(392)

我需要使用比当前与hadoop common捆绑的jsch更新的版本。
当我和你一起工作的时候 hadoop jar 我用 export HADOOP_CLASSPATH=path/to/jsch-0.1.51.jar:$HADOOP_CLASSPATH 以及 export HADOOP_USER_CLASSPATH_FIRST=true 而且效果很好。
但我不能让它在oozie工作流中工作。我将jsch-0.1.51.jar放在我的oozie工作流工作区的lib目录中,但它最后加载在类路径中。我也试过了 oozie.libpath 但没有成功。

lx0bsm1f

lx0bsm1f1#

我用maven shade插件解决了我的问题:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>foo.bar.Main</mainClass>
                            </transformer>
                        </transformers>
                        <relocations>
                            <relocation>
                                <pattern>com.jcraft.jsch</pattern>
                                <shadedPattern>shaded.com.jcraft.jsch</shadedPattern>
                            </relocation>
                        </relocations>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

相关问题