spark failure detection-为什么datanode不向主机(驱动程序)发送心跳信号

xesrikrc  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(307)

众所周知,心跳信号是一种周期性发送的信号,用于指示节点的正常运行或与系统的其他部分同步
在我们的系统中,我们有5个工作机,而执行在其中3个工作机上运行
我们的系统包括5台datanodes机器(worker)和3台master机器,hadoop版本是2.6.4,所有机器都是redhat机器版本7.x
在第一台master1机器上安装thrift服务器(驱动程序在master1中)
在spark中,heartbeats是执行者(从workers机器)发送给驱动程序的消息(master1机器),消息由case类org.apache.spark.heartbeat表示
然后驱动程序通过org.apache.spark.heartbeatreceiver#receiveandreply(context:rpccallcontext)方法接收消息。司机:
心跳的主要目的在于检查给定的节点是否仍处于活动状态(从工作机到主1机)
驱动程序通过向自身发送expiredeadhosts消息,以固定的间隔(在spark.network.timeoutinterval条目中定义)验证它。当消息被处理时,驱动程序检查没有最近心跳的执行者。
直到现在我才解释这个概念
我们注意到执行器发送的消息无法传递给驱动程序,从yarn日志中我们可以看到该警告

WARN executor.Executor: Issue communicating with driver in heartbeater

我的问题是-驱动程序(master1机器)不能从工人机器获得心跳的原因是什么

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题