如果我正确理解Hadoop生态系统,我可以运行我的MapReduce作业从HDFS或HBase获取数据。假设先前的假设是正确的,为什么我会选择一个而不是另一个?使用HBase作为MR源是否具有性能,可靠性,成本或易用性的好处?
我能找到的最好的是这句话,“HBase是当你需要对非常大的数据集进行实时读/写随机访问时使用的Hadoop应用程序。” - Tom White(2009) Hadoop:The Definitive Guide,1st Edition
答案 0 :(得分:6)
使用直接Hadoop Map / Reduce over HDFS,您的输入和输出通常存储为平面文本文件或Hadoop SequenceFiles,它们只是流式传输到磁盘的序列化对象。这些数据存储或多或少是不可变的。这使得Hadoop适用于批处理任务。
HBase是一个使用HDFS作为存储的完整数据库(尽管不是关系型的)。这意味着您可以对数据集运行交互式查询和更新。
HBase的优点在于它可以很好地与Hadoop生态系统配合使用,因此如果您需要对大型数据集执行批处理以及交互式,精细化,记录级操作,HBase将做得很好。