gpt4 book ai didi

java - 使用 org.apache.hadoop.utilProgressable 接口(interface)

转载 作者:可可西里 更新时间:2023-11-01 16:08:31 27 4
gpt4 key购买 nike

有人可以提供一个示例,说明在调用 FileSystem.create() 时如何实现 Progressable 接口(interface)以供使用吗?我在另一篇文章中看到了以下代码片段,但它没有显示 bytesWritten 的来源:

OutputStream os = hdfs.create( file,
new Progressable() {
public void progress() {
out.println("...bytes written: [ "+bytesWritten+" ]");
} });

这个接口(interface)的文档上说是为了向Hadoop框架报告进度,避免在长时间操作的情况下超时,但是《Hadoop: The Definitive Guide》说是为了通知应用程序数据的进度被写入数据节点,这没有多大意义,因为它是一个创建。

谢谢,RF

最佳答案

如果你有一个 Mapper 的实现,其中 map() 的调用可能需要很长时间(比如超过几分钟),那么你可以定期调用 progress() 在提供的上下文对象上让 Hadoop 知道您的代码没有挂起。这就是他们所说的“显式报告进度”的意思 - 当您使用由实现 Progressable 的框架提供的对象时它会起作用,当您编写自己的实现时它显然不会那样工作可进步

关于java - 使用 org.apache.hadoop.utilProgressable 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714164/

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