gpt4 book ai didi

hadoop - hadoop中的全局变量

转载 作者:可可西里 更新时间:2023-11-01 14:11:49 25 4
gpt4 key购买 nike

我的程序遵循迭代 map/reduce 方法。如果满足某些条件,它需要停止。无论如何我可以设置一个可以分布在所有 map/reduce 任务中的全局变量,并检查全局变量是否达到完成条件。

像这样。

While(Condition != true){

Configuration conf = getConf();
Job job = new Job(conf, "Dijkstra Graph Search");

job.setJarByClass(GraphSearch.class);
job.setMapperClass(DijkstraMap.class);
job.setReducerClass(DijkstraReduce.class);

job.setOutputKeyClass(IntWritable.class);
job.setOutputValueClass(Text.class);

}

其中 condition 是一个全局变量,在每次 map/reduce 执行期间/之后被修改。

最佳答案

每次运行 map-reduce 作业时,您可以检查输出的状态、计数器中包含的值等,并在控制迭代的节点上决定是否要再进行一次迭代或不。我想我不明白在您的场景中对全局状态的需求来自何处。

更一般地说——在执行节点之间共享状态有两种主要方式(尽管应该注意的是,最好避免共享状态,因为它会限制可伸缩性)。

  1. 将其他节点可以读取的文件写入 HDFS(确保文件在作业退出时得到清理,并且推测执行不会导致奇怪的失败)。
  2. 使用 ZooKeeper 将一些数据存储在专用的 ZK 树节点中。

关于hadoop - hadoop中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com