背景:
当初由于开发的需求,需要将传统方式部署azkaban以容器的方案部署,不但可以满足业务需求,还可以将用于构建的azkaban ECS虚拟机空闲出来,用作k8s节点。
但是在构建azkaban容器实例的时候由于azkaban参数配置不当,导致无法上job等文件到azkaban,根据相关人员反馈,我创建测试job刚好复现了异常。
1、azkaban上传文件失败报错
从图片可以怀疑到应该是某个配置参数的设置不当限制了。
2、疑点分析
本来以为是MinimumFreeMemory限制可用内存需要在6G以上。记得当初在配置已解除了该配置限制,再次核对也证明了已解除MinimumFreeMemory内存限制;认证审查配置文件以及官方文档,发现有个跟内存有关的可疑参数,刚好和报错相吻合。
官方配置文件说明:https://azkaban.readthedocs.io/en/latest/configuration.html#executor-server-propertieshttps://azkaban.readthedocs.io/en/latest/configuration.html#executor-server-properties 在官方的配置参数说明里面发现了两个可疑的参数,分别是: job.max.Xms 和 job.max.Xmx ; job.max.Xms 和 job.max.Xmx的默认值分别是:1GB 和 2GB
下表是官方的部分参数说明:
Parameter | Description | Default |
---|---|---|
azkaban.name | The name of the azkaban instance that will show up in the UI. Useful if you run more than one Azkaban instance. | Local |
azkaban.label | A label to describe the Azkaban instance. | My Local Azkaban |
azkaban.color | Hex value that allows you to set a style color for the Azkaban UI. | #FF3601 |
azkaban.depth | Graph expansion level. Zero (0) means all flows are collapsed when the graph is rendered for the first time. | 2 This means the flows will be recursively expanded up to two levels down when the graph is 1st shown. |
web.resource.dir | Sets the directory for the ui’s css and javascript files. | web/ |
default.timezone | The timezone that will be displayed by Azkaban. | America/Los_Angeles |
viewer.plugin.dir | Directory where viewer plugins are installed. | plugins/viewer |
job.max.Xms | The maximum initial amount of memory each job can request. This validation is performed at project upload time | 1GB |
job.max.Xmx | The maximum amount of memory each job can request. This validation is performed at project upload time | 2GB |
job.max.Xms: 每个作业可以请求的最大初始内存量。此验证在项目上传时执行。
job.max.Xmx: 每个作业可以请求的最大内存量。此验证在项目上传时执行。
3、删除azkaban-web应用配置job.max.Xms=1GB和job.max.Xmx=2GB后,azkaban可以成功上传文件