我在很多地方读过关于流数据的文章,但只是试图理解使用Map Reduce技术处理它时所面临的挑战?
即Apache Flume、Apache Storm等框架存在的原因。
请分享你的建议和想法。
谢谢,Ranit
发布于 2014-11-29 04:12:29
有许多技术,其中许多都运行在Hadoop框架上。
较老的Hadoop服务,如Hive,往往很慢,通常用于批处理作业,而不是流。随着流媒体变得越来越必要,其他服务也浮出水面,比如Storm或Spark,它们旨在更快地执行,并与Kafka等消息队列集成以实现流媒体。
然而,在数据分析中,大多数时间处理并不是完全实时的:历史数据可能会以批处理模式进行处理,以提取模型,然后用于实时分析,因此“流”系统通常基于Lambda架构http://lambda-architecture.net/
像Spark这样的服务试图集成所有组件,Spark Streaming用于速度层,Spark SQL用于服务层,Spark MLLib用于建模,所有这些都基于Hadoop分布式文件系统(hdfs)用于复制的大容量存储。
Flume有助于将数据从源定向到hdfs进行原始存储,但为了处理这些数据,需要使用Storm或Spark。
希望这能有所帮助。
发布于 2016-08-11 03:00:15
您的问题尚未解决。但我假设您想了解在Map Reduce环境中处理流数据的挑战。
1) Map Reduce主要用于批处理。它用于处理磁盘中静止的大量数据。
2)流数据是一种高速的数据,这些数据来自各种来源,如Web应用程序点击流、社交媒体日志、Twitter标签、应用程序日志。
3)事件流可以是无状态的(假设每个事件都是唯一的),也可以是有状态的(收集2秒的数据并处理它们),但批处理应用程序没有任何这样的要求。
4)流媒体应用需要交付/处理保证。例如,框架必须提供“只有一次”的交付/处理机制,这样它才能处理所有流事件而不会失败。这在批处理中不是一个挑战,因为所有数据都在本地可用。
5)外部连接器:流框架必须支持外部连接,以从各种来源实时读取数据,正如我们在(2)中讨论的那样。这在批处理中不是一个挑战,因为数据在本地可用。
希望这能有所帮助。
https://stackoverflow.com/questions/27177104
复制相似问题