几天前,我的公司要求我找到启动项目的要求。该项目正在创建一个电子书商店。术语简单,但数据总量约为4TB,文件数约为500,000。
由于我的团队成员使用php和mysql,我试图查看apache以获取大数据。我显然面对apache haadoop和mysql-cluster用于大数据。但经过几天的谷歌搜索,我现在只是完全糊涂了!我现在有这些问题:
这些数据量(4-5TB)是否被视为大数据? (有些消息称,至少5TB的数据应该使用hadoop,其他一些说hadoop的大数据意味着Zetabytes和Petabytes)
hadoop是否附带了自己的特殊数据库,还是应该与mysql等一起使用?
hadoop是否仅适用于群集,或者它在单节点服务器上工作正常?
由于我最近面对这些条款,我相信我的部分或全部问题可能真的很愚蠢......但如果您对此类型项目有其他建议,我将非常感激。
答案 0 :(得分:3)
以下是我的简短答案
这些数据量(4-5TB)是否被视为大数据? (有些消息称,至少5TB的数据应该使用hadoop,其他一些说hadoop的大数据意味着Zetabytes和Petabytes)
是和否。对于某些用例,这不是足够大的数据,而对于其他用户,则是。应该提出并回答的问题
此数据是否正在增长。增长率是多少。
hadoop是否附带了自己的特殊数据库,还是应该与mysql等一起使用?
hadoop是否仅适用于群集,或者它在单节点服务器上工作正常?
因此,5TB对于关系数据库(支持群集)来说不是很大的数量。但支持关系数据库的成本随容量呈指数增长。虽然使用Hadoop和HDFS,但成本非常低....添加Cassandra或HBase ......差别不大。但请记住,只需使用hadoop,您就会看到一个高延迟系统。如果您希望Hadoop能够实时回答您的问题......请留意其他解决方案。 (例如:查询列出所有已签出的书籍到Xyz",然后从DB中获取...不要使用Hadoop进行查询)。
总的来说,我的建议是,从youtube,cloudera参加Hadoop的速成课程,尝试获得有关Hadoop和什么不是Hadoop的专业知识然后再决定。你的问题给人的印象是,你有很长的学习历史,值得接受这个挑战。
答案 1 :(得分:0)
这应该是一个评论,但它太长了。
Hadoop是一个编写并行软件的框架,最初由Yahoo编写。它基于20世纪90年代Google开发的框架,而后者又是Lisp语言中map-reduce原语的并行实现。您可以将Hadoop视为一组库,这些库可以在您拥有的硬件上运行,也可以在云上的硬件上运行。这些库为java和其他语言提供了编程接口。它允许您利用一组处理器和磁盘(使用HDFS)。它的主要特性是可扩展性和容错能力,对于大数据问题都非常重要。
Hadoop实现了一种围绕map-reduce并行实现的编程方法。那是原始的应用程序。如今,很多东西都建立在Hadoop上。您应该从Apache project description和Wikipedia page开始了解详情。
有几个数据库支持Hadoop接口(Asterdata可以想到)。通常当人们想到“数据库”和“Hadoop”时,人们会想到Pig或Hive或者一些相关的开源项目。
至于你的问题。如果您的数据自然地符合关系数据库(具有按键连接的列的表),则使用关系数据库。如果您需要具有分层数据的Web应用程序的快速性能,那么请了解NoSQL解决方案,例如MongoDB。如果您的数据具有复杂的结构并且需要可扩展性和,那么您的团队就具备了编程技能,那么请考虑基于Hadoop的组件。而且,对于大型项目,不同组件通常需要多种技术 - 使用NoSQL的实时操作,使用SQL进行报告,使用SQL和Hadoop的组合进行临时查询(例如)。