Apache spark 如何知道火花群中的机器';参与';这是一份工作
我想知道什么时候从集群的机器上删除节点是安全的 我的假设是,如果机器没有任何容器,并且没有存储任何有用的数据,那么移除机器是安全的 通过上的API,我们可以Apache spark 如何知道火花群中的机器';参与';这是一份工作,apache-spark,hadoop,autoscaling,Apache Spark,Hadoop,Autoscaling,我想知道什么时候从集群的机器上删除节点是安全的 我的假设是,如果机器没有任何容器,并且没有存储任何有用的数据,那么移除机器是安全的 通过上的API,我们可以 GET http://<rm http address:port>/ws/v1/cluster/nodes GEThttp:///ws/v1/cluster/nodes 获取每个节点的信息,如 <node> <rack>/default-rack</rack> <s
GET http://<rm http address:port>/ws/v1/cluster/nodes
GEThttp:///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>
/默认机架
跑步
host1.domain.com:54158
host1.domain.com
host1.domain.com:8042
1476995346399
3.0.0-SNAPSHOT
0
0
8192
0
8.
1027
1027
0.006664445623755455
0
0
0
如果numContainers为0,我假设它不运行容器。然而,它还能在磁盘上存储其他下游任务可以读取的数据吗
我不知道Spark是否让我们知道这一点。我假设,如果一台机器仍然存储一些对正在运行的作业有用的数据,那么该机器可能会使用Spark驱动程序或某个中央控制器保持心跳?我们可以通过扫描tcp或udp连接来检查这一点吗
是否有其他方法可以检查Spark群集中的机器是否参与作业?我不确定您是否只想知道某个节点是否正在运行任何任务(这就是您所说的“参与”的意思),还是想知道从Spark群集中删除某个节点是否安全 我将试图解释后一点 Spark能够从故障中恢复,这也适用于从集群中移除的任何节点。 移除的节点可以是执行器或应用程序主节点
OutputCommitter
将输出从本地存储器移动到作业的共享存储器(HDFS),从中为作业的下一步提取数据。
当任务失败时(可能是因为运行此作业的节点失败或被删除),将在另一个可用节点上重新运行该任务
事实上,应用程序主机还将在此节点上重新运行成功运行的任务,因为其存储在节点本地存储上的输出将不再可用。我的目标是删除空闲节点,而不引入更多重试,因为重试会使运行变慢。听起来好像OutputCommitter之后,下游节点不再需要从节点读取数据,所以我们可以删除节点。我们知道节点是否可以运行OutputCommitter吗?在节点运行OutputCommitter期间,节点是否显示“0”?我想知道我们什么时候知道可以删除节点。