我喜欢数据库的便利性,您可以在其中就地更新行。但 Hadoop 依赖于能够并行使用的序列文件。
我喜欢 HBase 的想法,我可以只重写一行;以及作为 map-reduce 作业的输入。但是 HBase 不是新手必须搞砸的东西,对吧?什么是一个好的工具/方法?
我认为学习和使用 HBase 并不难。
来到你原来的问题。我们使用 HBase 的原因与使用任何其他 DB 的原因相同,即random, real-time read/write access
HDFS 与其他任何 FS 一样缺乏的原因。这适用于任何文件系统,而不仅仅是 HDFS。您可以以 ext4 & MySQL 范例为例。
当你说在 HBase 中重写时,它实际上并不是更新。您可以将一个new version
单元格或delete
一个单元格和put
新数据放在同一位置。
而且你不能说 Hadoop 依赖于序列文件来为你提供并行性。并行性是 Hadoop 凭借其性质提供的东西,即distributed platform
. 您可以使用 Hadoop 处理几乎任何类型的文件,并且具有几乎相同的并行性。序列文件的唯一优点是它们更适合,MapReduce processing
因为它们已经在key/vale pairs
.
你必须接受它,但坦率地说 Hadoop 不理解更新。如果您可以详细说明您的用例,也许我可以提出更好的建议。