在终端中,它将显示没有带有以下命令的实时节点:
hadoop dfsadmin --report
我们尝试过这段代码......
FSNamesystem fs=FSNamesystem.getFSNamesystem();
String s=fs.getFSState();
System.out.println(s+"\n\n");
在java mapreduce程序中如何获取实时节点?
答案 0 :(得分:1)
从MapReduce作业中,您可以使用以下代码:
YarnClient client = YarnClient.createYarnClient();
Configuration config = context.getConfiguration();
client.init(new YarnConfiguration(config));
client.start();
try {
List<NodeReport> reports = client.getNodeReports(NodeState.RUNNING);
System.out.println(reports.size());
}
catch (Exception ex) {
System.err.println(ex.getMessage());
}
client.stop();
如果您不仅希望获得实时节点,还可以使用client.getNodeReports()
方法更改或添加更多节点状态。