Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 在选择hbase之前应该考虑什么?_Hadoop_Hbase_Rdbms_Bigdata - Fatal编程技术网

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

Hadoop 在选择hbase之前应该考虑什么?,hadoop,hbase,rdbms,bigdata,Hadoop,Hbase,Rdbms,Bigdata,我是大数据领域的新手 团队建议我们应该使用hbase而不是RDBMS来实现高性能。我们不知道在将RDM转换为hbase之前应该/必须考虑什么。有什么想法吗? < P>这是一个很难的问题,有很多事情要考虑。p> 你能优化你的RDBMS吗?添加索引,对代价太高的连接进行非规范化。。。有很多路要考虑,我也不是专家。 你的数据大吗?这是非常模糊的,在RDBMS和大数据之间有一个空间,您无法确定使用哪一个。RDBMS仍然可以高效地处理数百万行 您的数据中是否需要关系?NoSQL数据库不使用关系,这对于SQ

我是大数据领域的新手


团队建议我们应该使用hbase而不是RDBMS来实现高性能。我们不知道在将RDM转换为hbase之前应该/必须考虑什么。有什么想法吗?

< P>这是一个很难的问题,有很多事情要考虑。p>
  • 你能优化你的RDBMS吗?添加索引,对代价太高的连接进行非规范化。。。有很多路要考虑,我也不是专家。
  • 你的数据大吗?这是非常模糊的,在RDBMS和大数据之间有一个空间,您无法确定使用哪一个。RDBMS仍然可以高效地处理数百万行
  • 您的数据中是否需要关系?NoSQL数据库不使用关系,这对于SQL背景的人来说很难做到。有一些框架将SQL提供给HBase,但在使用大数据时,通常使用RDBMS模型是个坏主意
  • 如果您能够回答这些问题,并且认为NoSQL是一种训练,那么请询问您的团队对此有何感受。NoSQL数据库带来了在SQL世界中永远不会遇到的问题。他们应该首先建立一个原型来了解所有这些是如何工作的,也许可以为他们提供一些培训

    总之:
    -查找是否需要非关系数据库
    -选择正确的(Hbase真的是你需要的吗?为什么不考虑卡桑德拉或MangGDB?)< /P> < P> < /P>

    谈到@Whitefret的最后一点:有一种东西叫做“基于”,可以据此做出决定。

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

    • 可用性(每个请求都会收到一个关于它是成功还是失败的响应)

    • 分区容差(即使由于网络故障而进行任意分区,系统仍能继续运行)

    在这种情况下,Hbase支持CP
    但是,要将RDBMS切换到HBASE,您可以使用。

    HBASE与所有NoSQL DB一样,都具有强大的新功能,但遗憾的是,没有什么是免费的(甚至没有提到金钱成本)

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

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

    “HBase并非适用于所有问题

    首先,确保您有足够的数据。如果您有数亿行或数十亿行,那么HBase是一个很好的选择。如果您只有几千行或几百万行,那么使用传统的RDBMS可能是一个更好的选择,因为您的所有数据可能都集中在一个(或两个)节点上集群的其余部分可能处于空闲状态

    其次,确保您可以在没有RDBMS提供的所有额外功能(例如,类型化列、二级索引、事务、高级查询语言等)的情况下生存。基于RDBMS构建的应用程序不能“移植”例如,只需更改JDBC驱动程序,就可以使用HBase。考虑从RDBMS到HBase作为一个完全的重新设计,而不是一个端口。 第三,确保你有足够的硬件。即使是HDFS也不能很好地处理少于5个DataNode的数据(这是因为HDFS块复制的默认值为3),再加上一个NameNode

    HBase可以在笔记本电脑上独立运行,但这只应视为一种开发配置。"