在使用苏打水和H2O进行了许多努力之后,我进入了一个阶段,在该阶段中我将进行训练以尝试训练DRF模型。 该作业正在使用Spark 1.6和苏打水2.1的纱线上运行。
该作业实际上正在运行并且成功,但是经过很长时间。当我尝试检查每个执行器上的H2O日志时,即使设置了spark.ext.h2o.node.log.dir
,也找不到它。而且,当培训开始时,我什至无法识别执行者的任何活动。我确实在spark.ext.h2o.client.log.dir
中找到了日志(据我所知),它是H2O的驱动程序。在此日志中,我可以看到培训过程,例如:Example to DRF training process
日志实际上验证了我的担心,即执行者\ H2O节点不参与训练过程以及在一台机器上运行的整个过程。您会看到,每隔几分钟便会添加一棵树,而不是像创建分布式树所期望的那样批量添加。
H2O和苏打水需要大量调整才能工作,所以也许我错过了一些东西。因此,我很乐意提供一些指导:
2。如何获取H2O节点日志?他们为什么失踪了?
其他数据: 这是我正在运行的标志:
'spark.executor.memory': '8g',
'spark.locality.wait': '3000',
'spark.scheduler.minRegisteredResourcesRatio': '1',
'spark.scheduler.maxRegisteredResourcesWaitingTime': '1800000',
'spark.task.maxFailures': '1',
'spark.executor.heartbeatInterval' : '10s',
'spark.executor.cores': '4',
'spark.yarn.executor.memoryOverhead': '4000',
'spark.dynamicAllocation.enabled': 'false',
'spark.yarn.driver.memoryOverhead': '4000',
'spark.yarn.am.memoryOverhead': '4000',
'spark.yarn.max.executor.failures': '1',
'spark.ext.h2o.disable.ga': 'false',
'spark.ext.h2o.client.web.port': '10050',
'spark.ext.h2o.node.log.level': 'INFO',
'spark.ext.h2o.node.log.dir': '/data0/yarn/nm/usercache/h20.node/h2o_logs',
'spark.ext.h2o.client.log.level': 'INFO',
'spark.driver.extraJavaOptions' : '-XX:MaxPermSize=384m',
'spark.executor.extraJavaOptions' : '-XX:MaxPermSize=384m',
'spark.yarn.am.extraJavaOptions' : '-XX:MaxPermSize=384m
更新: 我终于找到了日志。但是那里没有好消息,它们看起来都一样,但是您仍然无法检测到任何活动,这意味着参加培训过程的执行者仅会收到初始化消息。