流数据和 Hadoop? (不是 Hadoop 流)

2024-03-26

我想使用 MapReduce 方法分析连续的数据流(通过 HTTP 访问),因此我一直在研究 Apache Hadoop。不幸的是,Hadoop 似乎希望以固定大小的输入文件开始作业,而不是在新数据到达时将其传递给消费者。事实确实如此,还是我错过了什么?是否有其他 MapReduce 工具可以处理从开放套接字读取的数据?可扩展性是这里的一个问题,所以我更愿意让 MapReducer 处理混乱的并行化工作。

我玩过级联 http://www.cascading.org/并能够在通过 HTTP 访问的静态文件上运行作业,但这实际上并不能解决我的问题。我可以使用curl作为中间步骤,将数据转储到Hadoop文件系统上的某个位置,并编写一个看门狗来在每次新数据块准备就绪时启动新作业,但这是一个肮脏的黑客行为;必须有一些更优雅的方法来做到这一点。有任何想法吗?


您描述的黑客或多或少是做事的标准方式——Hadoop从根本上来说是一个面向批处理的系统(一方面,如果数据没有结束,Reducers就永远无法启动,因为它们必须在数据结束之后启动)地图阶段已完成)。

轮换您的日志;当您轮换它们时,将它们转储到 HDFS 中。让一个看门狗进程(可能是分布式进程,使用 ZooKeeper 进行协调)监视垃圾场并启动新的处理作业。您需要确保作业在足够大的输入上运行,以保证开销。

Hbase 是 hadoop 生态系统中的 BigTable 克隆,您可能会对它感兴趣,因为它允许连续的插入流;但是,您仍然需要以批处理模式运行分析查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流数据和 Hadoop? (不是 Hadoop 流) 的相关文章

随机推荐