美文网首页
记录解决Azkaban调用kettle报错:Address al

记录解决Azkaban调用kettle报错:Address al

作者: 戊纵 | 来源:发表于2019-06-12 16:10 被阅读0次

    在使用azkaban的过程中发现有些任务失败是因为端口冲突,本身的kettle任务运行完成了,但在azkaban界面却认为任务执行失败根据报错信息查看源码发现错误信息如下:

    下载Kettle7.0版本的源码可以看到:

    报错发生在207行,因为socket端口被占用,查看START_PORT_NUMBER的值为:

    检查kettle目录,发现无该配置项的设置,也就是说端口的起点为11000,出现Address already in use时通常前后任务较多,结合公司默认端口为11017,假设是因为端口向上递增到11017导致在检查端口时报错,在此假设的基础上调整默认端口为21000,同时将在10000以下的端口号向上调整。

    在data-integration/system/karaf/etc 目录下检查karaf配置,在custom.properties中插入:

    pentaho.karaf.instance.start.port=21000

    在后续kettle任务执行时检查进程监听端口,发现未生效,失败依旧经常出现,再次查看源码,kettle在初始化时获取系统变量有一种方式是从KarafPorts.yaml获取信息,这个文件是这样的:

    KarafPorts.yaml

    代码中读取此文件:

    在KarafPorts.yaml中添加:

    - id: INSTANCE_START_PORT

      property: pentaho.karaf.instance.start.port

      friendlyName: Instance Start Port

      startPort: 21000

      endPort: 27000

      serviceName: karaf

    通过观察Azkaban的日志

    端口调整成功,随着时间检测问题是否解决

    相关文章

      网友评论

          本文标题:记录解决Azkaban调用kettle报错:Address al

          本文链接:https://www.haomeiwen.com/subject/mlslfctx.html