【发布时间】:2012-02-24 23:07:03
【问题描述】:
我想开发一个应用程序来学习如何使用 HBase。我可以使用哪些技术来使用 HBase 开发一个好的学习项目?例如,我想使用 Ruby on Rails 或 Java EE 或 Spring 之类的东西。我可以做什么架构?
【问题讨论】:
标签: java spring open-source projects-and-solutions hbase
我想开发一个应用程序来学习如何使用 HBase。我可以使用哪些技术来使用 HBase 开发一个好的学习项目?例如,我想使用 Ruby on Rails 或 Java EE 或 Spring 之类的东西。我可以做什么架构?
【问题讨论】:
标签: java spring open-source projects-and-solutions hbase
您可能知道 HBase 构建在 HDFS(Hadoop 分布式文件系统)之上,预计它将用于存储非常大(TB 或 PB)的数据集。因此,从普通应用程序(控制台或桌面或 Web 应用程序)中使用 HBase 并不是一个好主意,因为它能够并行处理数据集,如果我们想要获得良好的性能和可扩展性,这是必需的这么大的数据集。如果没有并行处理,可能需要很多天才能完成对如此大数据的单个作业。 Hadoop 的 MapReduce 框架正好为这个问题提供了解决方案。您可以使用 MapReduce 读取/写入 HBase。这将使应用程序具有高性能(作业将从几天减少到几分钟或几小时)。
所以,IMO,最好从使用 MapReduce 框架和 HBase 开始。为此,您可以使用 Java 或 RoR。虽然 MapReduce 框架是用 Java 开发的,但它也可以通过 Streaming API 从其他语言中使用。 RoR 还可以更好地与 Hadoop 集成。
【讨论】:
我认为这与使用 HBase 的应用程序的技术无关。主要的学习曲线(除了 Hadoop 和 HBase 管理)是理解 RDBMS 和 HBase 之间的范式转换。
因此,我建议的主要做法是采用一些现有的 RDBMS 设计(或可以想象)并将其映射到 HBASE。您必须通过的主要测试 - 以查看您用于在 RDMS 上执行的所有查询都可能以合理的效率进行。这样做您将了解 HBase 和关系数据库之间的概念差异。
【讨论】: