我在一台250GB或内存和40个内核以及几TB或硬盘空间的计算机上运行一个独立群集。
我正在初始化一个由8个执行程序组成的群集,每个执行程序具有5个核心和28GB的内存。
我正在读取数据,我的持久性策略是MEMORY_AND_DISK。
我正在读取实木复合地板文件,对其进行处理,并生成一个DataFrame,然后将其传递到管道以提取特征并训练Random Forest分类器。
在生成DataFrame时,我失去了执行者,但我无法找出原因。
我看到以下错误:
16/12/15 11:07:30 ERROR TaskSchedulerImpl: Lost executor 3 on XXXX: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.
16/12/15 11:07:30 WARN TaskSetManager: Lost task 172.0 in stage 171.0 (TID 7757, XXXX): ExecutorLostFailure (executor 3 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.
Run Code Online (Sandbox Code Playgroud)
我已经在Spark UI上查看了执行程序的stderr日志,但是我什么也没发现(启用了INFO日志记录级别),只有INFO消息没有任何警告或错误。
我监视执行程序上的可用内存(再次使用Spark UI),在执行程序退出之前,仍然有可用内存,并且有大量可用磁盘空间。
如果您指定了8个执行器,每个执行器具有28g内存,那么其他所有东西都只有26g,那么不同的开销很快就会加起来,这很可能太少了,执行器由于占用内存而被杀死。
尝试使用每个执行器20g之类的东西,或者只是一般地使用这些值。您还在失去执行者吗?
| 归档时间: |
|
| 查看次数: |
4930 次 |
| 最近记录: |