Я хотел знать, когда безопасно удалить узел из машины из кластера.
Я предполагаю, что было бы безопасно удалить машину, если на машине нет контейнеров, ион не хранит никаких полезных данных.
По API на https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html, мы можем сделать
GET http://<rm http address:port>/ws/v1/cluster/nodes
, чтобы получить информацию о каждом узле, например
<node>
<rack>/default-rack</rack>
<state>RUNNING</state>
<id>host1.domain.com:54158</id>
<nodeHostName>host1.domain.com</nodeHostName>
<nodeHTTPAddress>host1.domain.com:8042</nodeHTTPAddress>
<lastHealthUpdate>1476995346399</lastHealthUpdate>
<version>3.0.0-SNAPSHOT</version>
<healthReport></healthReport>
<numContainers>0</numContainers>
<usedMemoryMB>0</usedMemoryMB>
<availMemoryMB>8192</availMemoryMB>
<usedVirtualCores>0</usedVirtualCores>
<availableVirtualCores>8</availableVirtualCores>
<resourceUtilization>
<nodePhysicalMemoryMB>1027</nodePhysicalMemoryMB>
<nodeVirtualMemoryMB>1027</nodeVirtualMemoryMB>
<nodeCPUUsage>0.006664445623755455</nodeCPUUsage>
<aggregatedContainersPhysicalMemoryMB>0</aggregatedContainersPhysicalMemoryMB>
<aggregatedContainersVirtualMemoryMB>0</aggregatedContainersVirtualMemoryMB>
<containersCPUUsage>0.0</containersCPUUsage>
</resourceUtilization>
</node>
Если numContainers равен 0,Я предполагаю, что это не запускает контейнеры.Однако может ли он по-прежнему хранить какие-либо данные на диске, которые могут прочитать другие последующие задачи?
Я не получил, если Spark сообщит нам об этом.Я предполагаю, что если машина все еще хранит некоторые данные, полезные для выполняемой работы, машина может поддерживать сердцебиение с помощью Spark Driver или какого-то центрального контроллера?Можем ли мы проверить это путем сканирования соединений tcp или udp?
Есть ли другой способ проверить, участвует ли машина в кластере Spark в задании?