解決azkaban3.x執行job時一直處於preparing狀態問題

有兩種錯誤狀態:

1、job時一直處於preparing狀態問題,然後一會兒就報錯;

2、azkaban-exec/bin/logs/azkaban-webserver.log報錯:

2020/04/10 10:21:12.310 +0800 ERROR [ExecutorManager] [Azkaban] Failed to update ExecutorInfo for executor : node01:46208 (id: 4), active=true
java.util.concurrent.ExecutionException: org.apache.http.conn.HttpHostConnectException: Connect to node01:46208 [node01/192.168.72.141] failed: Connection refused (Connection refused)
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:206)
        at azkaban.executor.ExecutorManager.refreshExecutors(ExecutorManager.java:270)
        at azkaban.executor.ExecutorManager.access$300(ExecutorManager.java:73)
        at azkaban.executor.ExecutorManager$QueueProcessorThread.processQueuedFlows(ExecutorManager.java:1286)
        at azkaban.executor.ExecutorManager$QueueProcessorThread.run(ExecutorManager.java:1254)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to node01:46208 [node01/192.168.72.141] failed: Connection refused (Connection refused)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
        at azkaban.utils.RestfulApiClient.sendAndReturn(RestfulApiClient.java:133)
        at azkaban.utils.RestfulApiClient.httpPost(RestfulApiClient.java:125)
        at azkaban.executor.ExecutorApiGateway.callForJsonString(ExecutorApiGateway.java:125)
        at azkaban.executor.ExecutorApiGateway.callForJsonType(ExecutorApiGateway.java:89)
        at azkaban.executor.ExecutorManager.lambda$refreshExecutors$0(ExecutorManager.java:258)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
        ... 18 more

解決:

1、考慮內存問題:

修改azkaban-web下的azkaban.properties配置文件
去掉MinimumFreeMemory
過濾器會檢查 executor 主機空餘內存是否會大於 6G,如果不足 6G,則 web-server 不會將任務交由該主機執行
即爲:
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
在這裏插入圖片描述

2、手動修改exec-srver狀態爲激活。

通過進入mysql,
use azkaban
select * from executors;
可以查看到
在這裏插入圖片描述
使用一下命令激活

http://192.168.72.141:53184/executor?action=activate
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章