我想开发一个应用程序来学习如何使用HBase。我可以使用哪些技术来开发使用HBase的良好学习项目?我想使用像Ruby on Rails或Java EE或Spring这样的东西。我可以做什么架构?
答案 0 :(得分:1)
您可能知道HBase构建在HDFS(Hadoop分布式文件系统)的顶部,预计它将用于存储非常大的(TB或PB)数据集。因此,在正常应用程序(控制台或桌面或Web应用程序)中使用HBase不是一个好主意,因为如果我们想要具有良好的性能和可扩展性,它将能够并行处理数据集。如此庞大的数据集。如果没有并行处理,可能需要很多天才能完成对这些大型数据的单个作业。 Hadoop的MapReduce框架完全解决了这个问题。您可以使用MapReduce读取/写入HBase。这将使应用程序具有高性能(作业将从几天减少到几分钟或几小时)。
所以,IMO,最好开始使用带有HBase的MapReduce框架。您可以使用Java或RoR。尽管MapReduce框架是用Java开发的,但它也可以通过Streaming API从其他语言中使用。 RoR还可以更好地与Hadoop集成。
答案 1 :(得分:0)
我认为使用HBase的应用程序技术不是问题。主要的学习曲线(除了Hadoop和HBase管理)是理解RDBMS和HBase之间的范式转换。
因此,作为一个主要的例外,我建议采取一些现有的RDBMS设计(或者可以imegine)并将其映射到HBASE。您必须通过的主要测试 - 看看您曾经在RDMS上执行的所有查询都是可能的,并且具有合理的效率。这样做可以了解HBase和关系数据库之间的概念差异。