具有关系数据库的Hadoop

Awi*_*ash 2 mysql hadoop hbase hive

我是Hadoop的新手,并且想知道Hadoop在这种情况下的工作原理。

在创建Dynamic Web项目期间,我曾经通过从Java / C#发送查询来存储和从MySQL数据库获取数据。

我在我的项目中使用Hadoop服务,并且hadoop提供了任何内置数据库系统,我们可以在其中存储数据并在需要时检索数据,而不使用外部数据库。

提前致谢。

Tar*_*riq 5

Hadoop不提供任何内置数据库。这只是两件事:

  • 分布式FS(HDFS
  • 分布式处理框架(MapReduce,我简称为MR

我假设由于您正在处理Web服务,因此您需要非常快速的响应。在这种情况下,恕我直言,Hadoop(准确地说是HDFS)或任何其他FS将不是合适的选择。原因是HDFS缺乏随机/读取功能,这对于任何Web项目都是非常重要的。

Hive也是如此。尽管它以类似于RDBMS的方式管理数据,但实际上它不是RDBMS。底层存储机制仍然是HDFS文件。此外,当您发出Hive查询以获取结果时,该查询首先被转换为MR作业,然后生成结果,从而导致响应缓慢。

最安全的选择是使用HBase。当您需要对数据进行随机,实时的读/写访问时,绝对是一个更好的选择。尽管它不是Hadoop平台的一部分,但它是为与Hadoop一起使用而构建的。可在现有HDFS群集上运行,并可通过不同的HBase API(适合您的情况)或通过MR(不适用于实时数据。适用于需要批量处理大量数据的情况)直接操作。易于设置和使用,无需其他基础架构。

这里要注意的重要一件事是HBase是NoSQL DB,并且不遵循RDBMS约定和术语。因此,您可能必须在开始时对设计进行一些工作。

除了HBase,您还有其他选择,例如Cassandra,它也是一个NoSQL DB。

高温超导