Hadoop 在我的项目中派上用场了吗? [关闭]
Posted
技术标签:
【中文标题】Hadoop 在我的项目中派上用场了吗? [关闭]【英文标题】:Does Hadoop come handy in my project? [closed] 【发布时间】:2014-01-13 21:24:30 【问题描述】:几天前,我的公司要求我寻找启动项目的要求。该项目正在创建一个电子书店。用词简单,但总数据量约4TB,文件数约50万。
由于我的团队成员使用 php 和 mysql,我尝试在 apache 周围寻找大数据。我显然面临 apache haadoop 和 mysql-cluster 的大数据。但是经过几天在谷歌上的挖掘,我现在完全糊涂了!我现在有这些问题:
甚至这些数据量(4-5TB)是否被视为大数据? (一些消息来源说至少 5TB 的数据应该使用 hadoop,还有一些人说 hadoop 的大数据意味着 Zetabytes 和 Petabytes)
hadoop 自带专用数据库,还是应该和mysql 等一起使用?
hadoop 是只在集群上工作,还是在单节点服务器上也能正常工作?
当我最近遇到这些术语时,我相信我的部分或全部问题可能真的很愚蠢......但如果您对此类项目有其他建议,我将非常感激。
【问题讨论】:
【参考方案1】:这是我的简短回答
甚至这些数据量(4-5TB)是否被视为大数据? (一些消息来源说至少 5TB 的数据应该使用 hadoop,还有一些人说 hadoop 的大数据意味着 Zetabytes 和 Petabytes)
是和不是。对于某些用例,这不是足够大的数据,而对于其他用例,它是。应该问和回答的问题
此数据是否在增长。增长率是多少。
您是否要不时对这些数据进行一些分析hadoop有自带的专用数据库吗,还是应该和mysql等一起使用?
是的,Hadoop 有 HDFS 文件系统,可以存储平面文件,可以像数据存储库一样对待。但这可能不是最好的解决方案。你可能想看看 NoSQL DB,比如 Cassandra、HBase、MongoDBhadoop 是只在集群上工作,还是在单节点服务器上也能正常工作?
从技术上讲,是的,hadoop 可以在伪集群或独立模式下在单个节点上运行。但这仅用于开发的学习或测试目的。对于任何生产环境,您都应该考虑跨多个虚拟机的 Hadoop 集群......我在 prod 中看到的最低限度是 6 个虚拟机。因此 5TB 对于关系数据库(支持集群)来说并不是很大的容量。但是支持关系数据库的成本随着容量的增加而呈指数增长。使用 Hadoop 和 HDFS 时,成本非常低……添加 Cassandra 或 HBase……差别不大。但请记住,仅使用 hadoop,您正在查看的是一个高延迟系统。如果您的期望是 Hadoop 将实时回答您的查询……请注意其他解决方案。 (例如:查询,如列出所有已签出到 Xyz 的书籍”,然后从 DB 中获取...不要使用 Hadoop 进行该查询)。
总体而言,我的建议是,参加 youtube、cloudera 的 Hadoop 速成课程,尝试获得一些关于什么是 Hadoop 和什么不是 Hadoop 的专业知识,然后再决定。您的问题给人的印象是,您还有很长的学习曲线,值得一试。
【讨论】:
【参考方案2】:这应该是评论,但太长了。
Hadoop 是一个用于编写并行软件的框架,最初由 Yahoo 编写。它松散地基于 Google 在 1990 年代开发的框架,而后者又是来自 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 组合的临时查询(例如)。
【讨论】:
以上是关于Hadoop 在我的项目中派上用场了吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Google-App-Engine 上的 Grails - 它死了吗? [关闭]
Eclipse 对 Android 开发来说已经死了吗? [关闭]