我已经使用nohup命令启动了HDFS平衡器:
$ nohup hdfs balancer &
这是永远的事情,我需要在集群上工作。您知道我如何停止该过程吗?
这是一个分布式过程,因此仅通过执行“ kill PID”操作就很难停止...
谢谢
答案 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,个人经历。