有人能帮助我了解什么可能是下面的行来在Spark工作日志的可能原因。
2018-06- 11 T05:35:46,181- INFO [任务328的执行者任务启动工作程序:Logging$class@54] - TID 328等待堆上执行池的至少1/2N空闲2018-06- 11 T05:35:46,182- INFO [任务329的执行者任务启动工作程序:UnsafeExternalSorter@202] -线程151将50.0 MB的排序数据溢出到磁盘(到目前为止20次)
2018-06- 11 T05:35:46,188-信息[任务322的执行任务启动工人:UnsafeExternalSorter@202] -线程176溢出33.0 MB的排序数据到磁盘(到目前为止27次)
Spark程序工作:
1.查询数据库,缓存整个表(缓存2GB)
1.按顺序选择3个国家中的一个国家的记录(丹麦、印度、新西兰)
1.将该框架分成500块,并将其传递给一个map函数,该函数在一块中创建一组记录的json,并将其发送到搜索服务器
- map应用于并行集合(Vector)执行并行处理,我们可以并行发送到搜索服务器进行索引。
我是Spark的新手,所以请帮助我了解配置的哪个部分应该阻止这种溢出。Spark版本是2.1.1
2条答案
按热度按时间ljsrvy3e1#
62o28rlo2#
此日志表示没有足够的内存用于任务计算,并将数据交换到磁盘,这是一个昂贵的操作。当您在一个或几个执行器任务中发现此日志时,表明存在数据偏斜,您可能需要找到偏斜关键数据并对其进行预处理。