广播变量找不到

2020-03-13 14:15:21,954 ERROR ql.Driver: (SessionState.java:printError(1214)) [HiveServer2-Handler-Pool: Thread-5475990(SessionHandle=b20cac73-1b69-47af-a4f0-fab521b43a91)] - EXECUTION FAILED: Task MAPRED-SPARK error SparkException: [Error 1] Job aborted due to stage failure: Task 8 in stage 2910698.1 failed 4 times, most recent failure: Lost task 8.3 in stage 2910698.1 (TID 765270081, 172.28.184.21): java.io.FileNotFoundException: http://172.28.184.9:36260/broadcast_7479411

默认4h(Dspark.cleaner.ttl)清理磁盘的broadcast,任务运行4h+之后,之前的broadcast被清理所以找不到

Dspark.cleaner.ttl.BROADCAST_FAST=1800 这个是半小时清理内存的broadcast,内存里面找不到,不会报错,会重新去磁盘拿,磁盘上要是还没有了就GG

EXTRA_EXECUTOR_OPTS也加上

数据量太大导致执行时间超过4小时,ttl默认清理了相关内存,导致中间变量找不到了

解决方法 1、减少数据量  2、修改相关配置参数,增大清理时间和超时时间,但是需要重启inceptor集群

相关sql语句看能不能再增加过滤条件以减少数据量,减少执行时间

猜你喜欢

转载自www.cnblogs.com/qfdy123/p/12533039.html