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