0535-5.15.0-Oozie中创建Ssh Action指定ssh端口号

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github:

https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

文档编写目的

考虑到服务器的安装,有些系统管理员会将服务器默认的SSH端口修改其它端口,这时在Hue上创建Oozie Ssh Action的WorkFlow时无法指定服务器的SSH端口号,导致Ssh Action执行失败。本篇文章Fayson主要介绍如何让Oozie的Ssh Action支持端口指定。

内容概述

1.源码分析

2.编译修复代码并打包

3.示例运行及验证

4.总结

测试环境

1.CM和CDH版本为5.15.0

2

Ssh Action源码分析

在CDH5.15.0版本中集成Oozie版本为4.1.0,Fayson通过在GitHub上找到Oozie的代码,在

https://github.com/apache/oozie/blob/branch-4.1/core/src/main/java/org/apache/oozie/action/ssh/SshActionExecutor.java

代码中包含了Ssh Action的所有逻辑,在代码中也可以看到ssh中唯一指定的参数为SSH_COMAND_OPTIONS,改变量为受保护的无法通过设置该变量增加ssh端口号等其他参数。

经分析现有oozie的SshActionExecutor.java的代码(甚至最新的oozie版本一样该SshAction未修复该问题),是无法实现指定ssh端口号配置的。

Fayson在github上有看到有贡献者提交了关于指定ssh端口号的修复版本

https://github.com/apache/oozie/pull/11,但提交的代码一直为合并到Oozie的主版本。

3

编译修复代码并打包

1.将GitHub上贡献者提交的代码拷贝至本地

代码地址如下:

https://github.com/apache/oozie/pull/11/commits/26dffbb07a2a9b65578e8fed634e2a4ff61a6350#diff-05854c4c1632a781d1c1554c6039e4e4

2.在git上下载与CDH版本一致的oozie4.1.0版本源码

将上一步保存的代码替换下载下来的源码中对应目录的SshActionExecutor.java代码目录

/data/disk1/oozie-release-4.1.0/core/src/main/java/org/apache/oozie/action/ssh

3.回到core目录下,执行如下命令重新编译oozie-core jar包

编译成功

注意:编译要配置Maven和Java环境变量,只需要编译core模块所以进入到core目录下。

4.找到CDH对应版本的oozie-core-4.1.0-cdh5.15.0.jar包,这一步将编译好的SshActionExecutor类打包到oozie-core-4.1.0-cdh5.15.0.jar包中

将oozie-core-4.1.0-cdh5.15.0.jar解压到指定目录下

将第4步通过编译的SshActionExecutor类拷贝至

/data/disk1/oozie-core/org/apache/oozie/action/ssh/覆盖jar包原有的类

5.更新了SshActionExecutor类后使用jar命令重新打包为oozie-core-4.1.0-cdh5.15.0.jar

6.将重新打包的jar包拷贝至/opt/cloudera/parcels/CDH/jars目录下,替换原有的jar包

注意:需要替换oozie服务所在服务器上的jar包。

4

示例运行及验证

1.登录CM进入oozie服务的配置界面,在oozie-site.xml中增加如下配置

配置完成后重启oozie服务。

2.登录Hue创建一个Ssh Action工作流测试

运行该WorkFlow测试

5

总结

1.Oozie是不支持Ssh Action指定端口的,需要使用github上提交的代码编译使其支持端口号配置。

2.GitHub上提交的代码SshActionExecutor,Fayson做了部分修改,主要是获取配置参数的ConfigurationService调用的地方,可以参考Fayson的GitHub。

GitHub地址:

https://github.com/fayson/cdhproject/tree/master/ooziedemo/sshaction

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190208B0NBD600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券