我已经在很多地方读过有关Streaming数据的内容,但只是想了解使用Map Reduce技术处理它时所面临的挑战?
即。存在Apache Flume,Apache Storm等框架背后的原因
请分享您的建议&想法。
谢谢, Ranit
答案 0 :(得分:1)
有许多技术,其中许多都在Hadoop框架上运行。
像Hive这样的旧Hadoop服务往往很慢,通常用于批处理作业,而不是用于流式处理。 随着流媒体变得越来越必要,其他服务已经浮出水面,如Storm或Spark,旨在加快执行速度,并与Kafka等流媒体队列集成以实现流媒体。
在数据分析中,大部分时间处理并非实时:历史数据可能以批处理模式处理,以提取随后用于实时分析的模型,因此“流媒体”系统通常基于Lambda架构http://lambda-architecture.net/
像Spark这样的服务尝试集成所有组件,Spark Streaming用于速度层,Spark SQL用于Serving层,Spark MLLib用于建模,所有这些都基于Hadoop分布式文件系统(hdfs)用于复制大容量存储。
Flume有助于将数据从源指向hdfs以进行原始存储,但为了处理它,使用了Storm或Spark。
希望有所帮助。
答案 1 :(得分:0)
你的问题是开放的。但我想你想了解在Map Reduce环境中处理流数据的挑战。
1)Map Reduce主要用于批处理。它用于处理磁盘中静止的大量数据。
2)流数据是一种高速数据,来自各种来源,如Web应用点击流,社交媒体日志,Twitter标签,应用程序日志。
3)事件流可以以无状态方式处理(假设每个事件都是唯一的)或以有状态方式处理(收集数据2秒并处理它们),但批处理应用程序没有任何此类要求。
4)流媒体应用程序需要交付/流程保证。例如,框架必须提供恰好一次"传递/处理机制,以便它可以无误地处理所有流事件。由于所有数据都在本地可用,因此批处理不是一个挑战。
5)外部连接器:流式框架必须支持外部连接,以便从各种来源实时读取数据,如(2)中所述。这不是批量挑战,因为数据是本地可用的。
希望这有帮助。