假设在这台机器上运行了10个容器(5个是mapreduce任务,5个是纱线执行器上的火花)。
如果我杀了节点管理器,这10个容器进程会发生什么?
在重新启动节点管理器之前,我应该先做什么?
答案 0 :(得分:0)
Killing nodemanager只会影响此特定节点的容器。所有正在运行的容器在重启/终止时都会丢失。一旦节点启动或nodemanager进程启动(如果应用程序/作业仍在运行),它们将重新启动。 注意:作业ApplicationMaster不应该在此从属服务器上运行。
当ApplicationMaster节点死亡时会发生什么? 在这种情况下,纱线在其他节点上启动新的ApplicationMaster。在这种情况下,所有容器再次重新启动。
答案 1 :(得分:0)
根据hadoop 2.7.x dist回答:查看这篇文章:http://hortonworks.com/blog/resilience-of-yarn-applications-across-nodemanager-restarts/
如果您没有将x
设置为true,那么您的容器将被杀死(火花或mapreduce或其他任何东西)但是您的工作很可能会继续运行。
您需要使用using std::vector;
using std::pair;
using std::cout;
using std::endl;
int reach(vector<pair<int, vector<int> > > &adj, int x, int y) {
vector<pair<int, vector<int> > >::iterator it;
vector<int>::iterator i;
for(it=adj.begin();it!=adj.end();it++)
{
cout << it->first << endl;
if (it->first == x)
for(i=it->second.begin();i!=it->second.end();i++)
{
cout << (*i) << endl;
if((*i)==y)
return 1;
}
}
return 0;
}
在您的环境中检查此属性。如果它是默认的,这对我来说是默认的,那么你无法做任何事情来防止在重启imo时杀死那些容器。但是,如果要恢复容器,可以尝试修改标志并为将来的情况设置其他必需属性。