- Cannot request memory (Xms 0 kb, Xmx 0 kb) from
system for job hello, sleep for 60 secs and retry, attempt 1 of 720
錯誤原因:azkaban默認需要3G的內存,剩餘內存不足則會報異常
解決方法:
在azkaban-exec/servcer/plugin/azkaban-exec-server/plugins/jobtypes/ 目錄下,在文件commonprivate.properties 中添加 memCheck.enabled=false然後修改
azkaban-exec-server/plugin/azkaban.properties文件中azkaban.jobtype.plugin.dir的路徑爲絕對路徑
最後重啓azkaban的exec-server和web-server,重新運行job就好了。
如果上述修改後,不起作用,直接修改azkaban的源碼,然後重新編譯
進入azkaban源碼目錄:
azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java
如果不知道ProcessJob.java的位置,使用 find 命令查找
$ find -name 'ProcessJob.java'
找到下面的代碼
紅色框中的內容就是我們運行job失敗後,在控制檯看到的日誌,修改144和155行代碼中的true爲false
修改前:
if (this.sysProps.getBoolean(MEMCHECK_ENABLED, true) && this.jobProps.getBoolean(AZKABAN_MEMORY_CHECK, true))
修改後:
if (this.sysProps.getBoolean(MEMCHECK_ENABLED, false) && this.jobProps.getBoolean(AZKABAN_MEMORY_CHECK, false))
重新編譯Azkaban,編譯完成後
將azkaban/azkaban-exec-server/build/distributions目錄下的azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz 解壓重命名,然後再修改配置替換舊的azkaban-exec-server,最後重啓exec和web服務即可
- azkaban.utils.UndefinedPropertyException: Missing
required property ‘azkaban.native.lib’
將下圖代碼中的true修改爲false,然後重新編譯,編譯完成後,將azkaban/azkaban-exec-server/build/distributions目錄下的azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz 解壓重命名,然後再修改配置替換舊的azkaban-exec-server,最後重啓exec和web服務即可