在选择hbase之前应该考虑什么?

时间:2016-06-13 04:49:51

标签: hadoop hbase rdbms bigdata

我在大数据领域非常新。

我们得到了团队的建议我们应该使用hbase而不是RDBMS来获得高性能。在将RDMS切换到hbase之前,我们不知道应该/必须考虑什么。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

One of my favourite book describes..

These are points to make note before taking decision

来到@ Whitefret的最后一点:根据可以做出的决定,有一些名为CAP theorm的东西。 enter image description here

  • 一致性(所有节点同时看到相同的数据)

  • 可用性(每个请求都会收到有关成功或失败的响应)

  • 分区容差(尽管由于网络故障导致任意分区,系统仍继续运行)

在此上下文中,Hbase支持CP

但是,要将RDBMS切换到HBASE,您可以使用SQOOP

答案 1 :(得分:2)

这是一个棘手的问题,需要考虑很多事情。

  1. 你能优化你的RDBMS吗?添加索引,连接的非规范化成本太高......有很多路要考虑,我不是专家。
  2. 您的数据是否很大?这是非常模糊的,你在RDBMS和大数据之间有一个空间,你不能确定使用哪一个。 RDBMS仍然可以有效地处理数百万行。
  3. 你需要关系数据吗? NoSQL数据库不使用关系,这对于SQL背景的人来说可能很难。有一些框架可以将SQL提供给HBase,但是在使用大数据时拥有RDBMS模型通常是个坏主意
  4. 如果您可以回答这些问题,并且您认为NoSQL是演习,请向您的团队询问他们对此的看法。 NoSQL数据库带来了您在SQL世界中永远不会遇到的问题。他们应该首先构建一个原型,以了解所有这些是如何工作的,并且可以为他们提供一些培训。

    总结:
    - 查找是否需要非关系数据库
    - 选择合适的(Hbase真的是你需要的吗?,为什么不考虑Cassandra或MongoDB?)

答案 2 :(得分:1)

像所有NoSQL DB一样HBase具有很棒的新功能,但遗憾的是没有任何东西是免费的(甚至没有提到钱的成本)。

在HBase中,您确实应该检查是否可以使用HBase数据模型填充您可能想要执行的所有查询。一个重要的考虑因素是架构设计(最重要的是rowkey的模型化)。 我建议你阅读这篇非常好的论文:

http://0b4af6cdc2f0c5998459-c0245c5c937c5dedcca3f1764ecc9b2f.r43.cf2.rackcdn.com/9353-login1210_khurana.pdf

我认为可以在HBase官方网站上找到一个非常好的答案。

" HBase并不适合所有问题。

首先,确保您有足够的数据。 如果您有数亿或数十亿行,那么HBase是一个不错的选择。如果你只有几千/百万行,那么使用传统的RDBMS可能是一个更好的选择,因为你的所有数据都可能在一个节点(或两个)上结束,其余的集群可能闲置着。

其次,确保您可以在没有RDBMS提供的所有额外功能的情况下生活(例如,键入的列,二级索引,事务,高级查询语言等)。针对RDBMS构建的应用程序不能被移植"例如,通过简单地更改JDBC驱动程序来访问HBase。考虑从RDBMS转移到HBase作为完全重新设计而不是端口。

第三,确保你有足够的硬件。甚至HDFS也不适用于少于5个DataNode的东西(由于HDFS块复制等默认值为3),加上NameNode。

HBase可以在笔记本电脑上独立运行 - 但这应该仅被视为开发配置。 "

https://hbase.apache.org/book.html