实时场景中的HOCop POC

时间:2013-01-12 15:36:58

标签: hadoop real-time bigdata hadoop-streaming

我有点问题。我想了解Hadoop以及如何使用它来实时处理数据流。因此,我想围绕它建立一个有意义的POC ,这样我就可以在我必须在一些潜在雇主面前证明我的知识或在我现在的公司介绍它时展示它。

我还想提一下,我的硬件资源有限。只是我的笔记本电脑和我:)我知道Hadoop的基础知识,并编写了2-3个基本的MR工作。我想做一些更有意义或更现实的事情。

请建议。

提前致谢。

8 个答案:

答案 0 :(得分:10)

我想指出一些事情。

如果你想只用一台笔记本电脑进行POC,那么使用Hadoop就没什么意义了。

另外,正如其他人所说,Hadoop不是为实时应用程序设计的,因为运行Map / Reduce作业会有一些开销。

话虽这么说,Cloudera发布了Impala,它与Hadoop生态系统(特别是Hive Metastore)一起工作,以实现实时性能。请注意,要实现此目的,它不会生成Map / Reduce作业,并且目前处于测试阶段,因此请谨慎使用。

所以我真的建议去Impala,所以你仍然可以使用Hadoop生态系统,但是如果你也在考虑其他一些可能有用的框架:

  • Druid:由MetaMarkets开源。看起来很有趣,即使我自己没有使用它。
  • Storm:没有与HDFS集成,它只是处理数据。
  • HStreaming:与Hadoop集成。
  • Yahoo S4:似乎非常接近Storm。

最后我认为你应该真正分析你的需求,看看你是否需要使用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)

我显然有偏见,但我还建议您实时查看GridGainGridGain是内存数据平台,提供ACID NoSQL数据存储和快速内存MapReduce。

答案 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)

我一直在找这样的东西 -

https://www.kaggle.com/competitions

这些是明确定义的问题,其中许多是大数据问题。其中一些需要实时处理。

但感谢所有回答的人。