2013-06-03 53 views
3

我是使用Hadoop的初学者。我只想知道我是否可以使用Hadoop作为Web应用程序的后端而不是使用关系数据库?Hadoop for web应用程序

+0

Hadoop不是数据库,它是一个Map/Reduce框架。也许你的意思是HBase? –

+0

这是HDFS + MapReduce。因此,它可以用作后端,但不适用于实时应用程序。 – Tariq

回答

0

在1线...... NO ... Hadoop是指对大数据的批量处理....

+0

谢谢所有人的快速回复。 – user1181979

6

与RDBMS放在首位你不能比较Hadoop的,因为它不是一个数据库。它只是为您提供一个文件系统(HDFS),像其他任何FS一样缺乏随机读取/写入的能力。如果你真的想为你的Web应用程序分发后端,你可以在Hadoop之上使用类似HBase的东西。它将为您提供实时,随机读取/写入功能。而且,最重要的是,Hadoop最适合批量处理,比如@Abhinav已经说过。

0

我认为答案是“不,你不应该”,但正如有人指出,这不是完整的答案。

Hadoop不是RDBMS的替代品 - 它既是分布式文件存储,也是分布式计算机制。这两件事都不能帮助网站自己。

现在有可能您拥有Hadoop中的大量“大数据”,如果它本质上是“键/值”查找,可以通过HBase使其可用。但有相当多的关键价值商店可能更适合。

如果您仍然需要SQL,可以使用Hive或Impala等工具,并为您提供类似于SQL的行为。使用Hive的缺点是它使用MapReduce - 这意味着每个查询可能需要一分钟!好的报告很多,但其他的都不行。 Impala应该加快速度,但我没有这方面的实际经验。

+0

根据我的经验,Hive不适合实时操作,Impala对像Joins等繁重的数据操作不利,因为它使用MPP,并且内存密集。所以,如果你有很多数据,你可能会用尽内存。此外,他打算通过Web服务访问后端,而不是直接编写SQL查询。 – Tariq