我有一点问题。我想了解 Hadoop 以及如何使用它来实时处理数据流。因此,我想围绕它建立一个有意义的 POC,以便当我必须在一些潜在雇主面前证明我对它的了解或在我现在的公司中介绍它时,我可以展示它。
我还想提一下,我的硬件资源有限。只有我的笔记本电脑和我 :) 我了解 Hadoop 的基础知识,并编写了 2-3 个基本的 MR 作业。我想做一些更有意义或更真实的事情。
请建议。
提前致谢。
我有一点问题。我想了解 Hadoop 以及如何使用它来实时处理数据流。因此,我想围绕它建立一个有意义的 POC,以便当我必须在一些潜在雇主面前证明我对它的了解或在我现在的公司中介绍它时,我可以展示它。
我还想提一下,我的硬件资源有限。只有我的笔记本电脑和我 :) 我了解 Hadoop 的基础知识,并编写了 2-3 个基本的 MR 作业。我想做一些更有意义或更真实的事情。
请建议。
提前致谢。
我想指出几点。
如果您只想用一台笔记本电脑进行 POC,那么使用 Hadoop 就没有什么意义了。
此外,正如其他人所说,Hadoop 不是为实时应用程序设计的,因为运行 Map/Reduce 作业有一些开销。
话虽如此,Cloudera 发布了Impala,它与 Hadoop 生态系统(特别是 Hive 元存储)一起工作以实现实时性能。请注意,要实现这一点,它不会生成 Map/Reduce 作业,并且目前处于测试阶段,因此请谨慎使用。
所以我真的建议你去 Impala,这样你仍然可以使用 Hadoop 生态系统,但如果你也在考虑替代方案,这里有一些其他的框架可以使用:
最后,我认为您应该真正分析您的需求,看看是否需要使用 Hadoop,因为它只是在实时空间中开始。还有其他几个项目可以帮助您实现实时性能。
如果您想展示项目的想法,我建议您查看此链接。她举了一些例子:
如果您想亲身体验一个很有前途的流式传输框架,请尝试 BDAS SPARK 流式传输。注意,这还没有发布,但是你可以在你的笔记本电脑上使用 github 版本(https://github.com/mesos/spark/tree/streaming)有很多示例可以帮助你入门。
此外,这与现有框架相比具有许多优点,1. 它使您能够在一个堆栈中结合实时和批量计算 2. 它会给您一个 REPL,您可以在其中以交互式方式尝试您的即席查询。3. 您可以在笔记本电脑上以本地模式运行它。还有许多其他优点,但我相信这三个足以满足您入门的需要。
您可能需要学习 scala 才能尝试 REPL :-(
有关更多信息,请查看http://spark-project.org/
Hadoop 是一个面向高吞吐量的框架,适用于批处理。如果您对实时处理和分析大量数据集感兴趣,请查看 twitterstorm。
我敢肯定的经典问题之一是最实时的。期权交易。这里的关键是在 twitter、facebook、youtube 上关注新闻和趋势,然后确定可能的 PUT 或 CALL 候选人。您将需要良好的技能和使用 Nutch/Lucene 精心实施 Mahout,然后使用趋势数据来了解当前情况和系统应该推荐投注(选项)。
我显然有偏见,但我也建议实时查看GridGain 。GridGain是提供 ACID NoSQL 数据存储和快速内存 MapReduce 的内存数据平台。
我认为您可以运行 POC,例如,在 mapreduce 中进行回归的在线/递归算法。但请记住,这只会证明您的“学习规则”有效。也许(从未尝试过)你可以通过告诉你的减速器将它们写入一个可以被另一个线程读取的临时文件来实时使用结果。
Mahout 还允许您在几个不同SequenceFile
的 s 中设置您的数据库。您可以使用它来模拟在线流并对“在线”数据集进行分类/聚类。您甚至可以在算法开始运行之前将部分数据与其他数据一起复制到文件夹中。
Mahout in Action详细说明了如何做到这一点。
看看以下数据集之一是否符合您的口味: http: //archive.ics.uci.edu/ml/datasets.html
如果您想构建一些实时应用程序,那么我建议您使用Apache Spark框架,它用于实时处理并支持多语言 API(Scala、Java、Python、R)