我正在从事概念验证任务。 我们的任务是使用Hadoop技术实现我们产品的功能。
功能非常简单,我们有一个用户界面,可以让您插入有关“网络问题”的详细信息。 捕获有关此类问题的所有详细信息并将其插入Oracle DB中的表中。 然后,我们处理此表中的数据并计算健康评分。
我必须使用Hadoop而不是传统的Db所以我的问题是该怎么做? HDFS上的Impala?要么 Hbase上的Impala?要么 HBASE?
我正在使用cloudera VM进行POC实施。
根据我的理解,Hbase是NoSQL分布式数据库,它实际上是HDFS上的一个层,它提供了访问数据的Java API。 Impala是一种工具,它还提供JDBC访问,以通过Hbase或直接通过HDFS访问数据。 我对hadoop很新,有人可以帮忙吗?
答案 0 :(得分:4)
嗯,这取决于几件事情,比如你将要执行的处理类型,所需的响应时间等。但是通过查看你在这里写的任何内容,HBase似乎没问题。到目前为止我没有发现Impala的任何需求。 HBase API很好,可以满足您的大部分需求。
恕我直言,最好先保持简单,只有在真正需要的时候添加工具。同样在这里也很好。如果您发现HBase API无法达到目的,您肯定可以将Impala添加到堆栈中。
话虽如此,但有一件事你应该记住。 HBase是NoSQL DB,不遵循RDBMS惯例和术语。所以,你最初可能会发现它有点奇怪。最好记住这一点然后继续,因为您必须以与RDBMS样式的架构设计完全不同的方式设计架构。