我们正在使用Sqoop将数据从Oracle,Teradata等各种来源复制到HDFS。我们使用增量更新功能来“导入”新数据&然后将其与现有数据“合并”。数据首先填充在临时目录中。然后我们'删除'旧的& '重命名'新的。
问题是,如果用户在我们交换目录时使用Hive等工具对HDFS上的数据进行查询,则查询会异常终止。
有没有更好的方法来处理HDFS上的更新?
(请注意,尽管HBase保留了不同的版本,但它对我们不起作用,因为我们想要通过任何列进行查询。在不使用主键搜索的情况下,HBase非常慢。)
答案 0 :(得分:0)
Hadoop的设计并不像那样。它适用于存储数据但不能编辑。我只是在旧数据旁边添加新数据,并在添加它(复制或任何其他导入)时,您可以将sufix .tmp添加到文件名。但我没有使用蜂巢(猪用户在这里)和猪我可以告诉A = LOAD'/ some / path / to / hdfs / *。log',这将加载除导入的.tmp之外的所有文件。这样就没有问题了。