在HDFS中锁定目录

时间:2014-02-19 00:20:12

标签: hadoop hdfs

有没有办法获取HDFS中的目录锁定?这就是我想要做的事情:

我有一个名为../ latest /...

的目录

我每天都需要在这个目录中添加新数据,但在此处复制新数据之前,我想获取锁定,这样当我将新数据复制到其中时,没有人使用它。

有没有办法在HDFS中执行此操作?

1 个答案:

答案 0 :(得分:3)

不,没有办法通过HDFS做到这一点。

通常,当我遇到此问题时,我会尝试将数据复制到随机临时位置,然后在复制完成后移动文件。这很好,因为mv非常快,而复制需要更长时间。这样,如果你检查是否有其他人在写,然后是mv,那么时间段和“锁定”会保持更短的时间

  1. 生成随机数
  2. 将数据放入hdfs:// tmp / $ randomnumber
  3. 中的新文件夹中
  4. 检查目的地是否正常(或许hadoop fs -ls
  5. hadoop fs -mv数据到latest目录。
  6. 有一个很小的机会,在3到4之间,你可能会有人破坏某些东西。如果真的让你感到紧张,也许你可以在ZooKeeper中实现一个简单的锁。 Curator可以帮助您。