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