是 hadoop 分布式文件系统线程安全的



我正在使用hadoop来写入我抓取的数据。

我有一个从多个线程调用的 spring 服务,用于将一些内容写入 HDFS。

@Service
public class WriteService
{
    public void write(String path, String content)
    {
        FileSystem fs = FileSystem.get(conf);
    }
}

我不确定文件系统对象是否可以是 WriteService 的成员,并且我找不到它是否线程安全。我正在使用分布式文件系统对象。

您知道它是否是线程安全的,我可以将其用作我服务的成员吗?

谢谢

Hadoop DFS使用所谓的WORM模型。这使得它在并发问题方面更加健壮。

但是,要回答这个问题,一般来说是不安全的。您仍然需要考虑并发控制要求。

如果先修改config.setBoolean("fs.hdfs.impl.disable. cache", true);,则可以在多个线程中使用FileSystem.get(config)

最新更新