有没有办法获取HDFS中的目录锁定?这就是我想要做的事情:
我有一个名为../ latest /...
的目录我每天都需要在这个目录中添加新数据,但在此处复制新数据之前,我想获取锁定,这样当我将新数据复制到其中时,没有人使用它。
有没有办法在HDFS中执行此操作?
答案 0 :(得分:3)
不,没有办法通过HDFS做到这一点。
通常,当我遇到此问题时,我会尝试将数据复制到随机临时位置,然后在复制完成后移动文件。这很好,因为mv非常快,而复制需要更长时间。这样,如果你检查是否有其他人在写,然后是mv,那么时间段和“锁定”会保持更短的时间
hadoop fs -ls
)hadoop fs -mv
数据到latest
目录。有一个很小的机会,在3到4之间,你可能会有人破坏某些东西。如果真的让你感到紧张,也许你可以在ZooKeeper中实现一个简单的锁。 Curator可以帮助您。