使用nohup后停止HDFS Balancer

时间:2018-09-21 12:59:29

标签: hdfs nohup

我已经使用nohup命令启动了HDFS平衡器:

$ nohup hdfs balancer &

这是永远的事情,我需要在集群上工作。您知道我如何停止该过程吗?

这是一个分布式过程,因此仅通过执行“ kill PID”操作就很难停止...

谢谢

1 个答案:

答案 0 :(得分:0)

实际上,HDFS平衡器不是一个分布式进程。这是一个启动群集上的块移动的单个过程。平衡过程由DataNodes以分布式方式进行,但是有关要平衡哪些块的命令源自单个过程(由FirstOrDefault()创建的过程)。进行List<TSource> sourceItems = ... var myEnumerable = sourceItems .Where(sourceItem => ...) .GroupBy(sourceItem => ...) .Select(group => ...); // note: myEnumerable is an IEnumerable, it is not a sequence yet. var list1 = sourceItems.ToList(); // Enumerate over the sequence var first = sourceItems.FirstOrDefault(); // Enumerate and stop after the first // now change the source, and to the same things again sourceItems.Clear(); var list1 = sourceItems.ToList(); // returns empty list var first = sourceItems.FirstOrDefault(); // return null: there is no first element 就足以停止任何进一步的平衡。

资料来源:HDFS Balancer documentation,个人经历。