6

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

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

请建议。

提前致谢。

4

8 回答 8

10

我想指出几点。

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

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

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

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

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

最后,我认为您应该真正分析您的需求,看看是否需要使用 Hadoop,因为它只是在实时空间中开始。还有其他几个项目可以帮助您实现实时性能。


如果您想展示项目的想法,我建议您查看此链接。她举了一些例子:

  • 金融/保险
    • 例如根据行业/公司指标、投资组合多样性和货币风险将投资机会分类为好或不好。
    • 根据交易和信用卡持有人的位置、日期、金额、购买的物品或服务、交易历史和类似交易,将信用卡交易分类为有效或无效。
  • 生物学/医学
    • 将蛋白质分类为结构或功能类别
    • 诊断分类,例如基于图像的癌症肿瘤
  • 互联网
    • 文档分类和排名
    • 恶意软件分类、电子邮件/推文/网络垃圾邮件分类
  • 生产系统(例如能源或石化行业)
    • 根据传感器的实时和历史数据分类和检测情况(例如甜蜜点或风险情况)
于 2013-01-12T17:50:25.013 回答
3

如果您想亲身体验一个很有前途的流式传输框架,请尝试 BDAS SPARK 流式传输。注意,这还没有发布,但是你可以在你的笔记本电脑上使用 github 版本(https://github.com/mesos/spark/tree/streaming)有很多示例可以帮助你入门。

此外,这与现有框架相比具有许多优点,1. 它使您能够在一个堆栈中结合实时和批量计算 2. 它会给您一个 REPL,您可以在其中以交互式方式尝试您的即席查询。3. 您可以在笔记本电脑上以本地模式运行它。还有许多其他优点,但我相信这三个足以满足您入门的需要。

您可能需要学习 scala 才能尝试 REPL :-(

有关更多信息,请查看http://spark-project.org/

于 2013-02-18T14:18:04.130 回答
1

Hadoop 是一个面向高吞吐量的框架,适用于批处理。如果您对实时处理和分析大量数据集感兴趣,请查看 twitterstorm。

于 2013-01-12T17:30:13.453 回答
1

我敢肯定的经典问题之一是最实时的。期权交易。这里的关键是在 twitter、facebook、youtube 上关注新闻和趋势,然后确定可能的 PUT 或 CALL 候选人。您将需要良好的技能和使用 Nutch/Lucene 精心实施 Mahout,然后使用趋势数据来了解当前情况和系统应该推荐投注(选项)。

于 2013-03-15T16:32:46.110 回答
0

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

于 2013-01-17T03:14:08.110 回答
0

我认为您可以运行 POC,例如,在 mapreduce 中进行回归的在线/递归算法。但请记住,这只会证明您的“学习规则”有效。也许(从未尝试过)你可以通过告诉你的减速器将它们写入一个可以被另一个线程读取的临时文件来实时使用结果。

Mahout 还允许您在几个不同SequenceFile的 s 中设置您的数据库。您可以使用它来模拟在线流并对“在线”数据集进行分类/聚类。您甚至可以在算法开始运行之前将部分数据与其他数据一起复制到文件夹中。 Mahout in Action详细说明了如何做到这一点。

看看以下数据集之一是否符合您的口味: http: //archive.ics.uci.edu/ml/datasets.html

于 2013-04-07T16:35:28.507 回答
0

如果您想构建一些实时应用程序,那么我建议您使用Apache Spark框架,它用于实时处理并支持多语言 API(Scala、Java、Python、R)

于 2018-11-10T12:20:52.260 回答
-1

我一直在寻找这样的东西 -

https://www.kaggle.com/competitions

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

但是感谢所有回答的人。

于 2013-01-13T13:16:02.253 回答