解释为什么Apache Storm这样的系统与Hadoop这样的知名技术相比是有用的。
让我们来看看笔记本品牌实时情感分析的经典问题。
进行意见分析,处理流程如下图所示:
- 从Twitter、Facebook、电子商务网站等不同来源收集数据。
- 在“高通量”等关键词的基础上,我们必须对数据进行过滤。
- 通过各种来源产生每个消息的情绪。
- 具有存储处理数据的存储机制。
现在的问题是我能不能用大数据系统来解决。请使用Hadoop查看下面的流程图:
如果我们运行的是配置单元查询、Pig脚本或MapReduce,则处理结果将需要几个小时,因为它们必须从HDFS(从磁盘读取)读取数据,然后再进行处理,因此理想情况下,它们无法实时处理数据(它们遵循静态数据原则)。
因此,对于Hadoop是否能够处理实时处理的问题,广泛的答案是否定的,因为Hadoop是用于批处理的,生成结果可能需要几个小时。
总之,由于Hadoop采用面向批处理的方法,因此它无法解决实时问题。
在许多这样的用例中,我们需要实时处理数据,例如:
- 欺诈检测
- 情绪分析。
- 日志监视
- 处理客户行为
那么现在我们该如何解决这个特殊的问题呢?通过使用一些实时流机制(一切都在内存中完成,遵循动态数据原理)。
此实时处理的经典流程如下所示:
但如果我们采用这种方法,则需要回答以下问题。
- 数据流:数据需要在数据管道中以流的形式发送。
- 容错:如果任何进程出现故障,那么故障转移机制是什么?
- 扩展:如果数据量增加,我们可以轻松地扩展集群以增加处理能力吗?
- 保证消息处理:是否有处理消息的保证?
- 编程语言不可知:它是否独立于编程。
有一些实时流机制,如Apache Storm,有助于解决这个问题。
现在让我们试着回答上面的问题,看看Apache Storm是否有答案。
数据流
数据以元组的形式作为流发送。
扩展
Storm是一个分布式平台,允许您向Storm群集运行时添加更多节点,并增加应用程序的吞吐量
容错性
在暴风雨中,单位工程由工人成群结队地进行。当一个工作进程死亡时,Storm将重新启动该工作进程,如果该工作进程正在运行的节点死亡,Storm将在群集中的其他某个节点上重新启动该工作进程。
保证消息处理
Storm提供了强大的保证,传递给它进行处理的每个元组将至少处理一次。如果该元组处理失败,Storm将重新启动那些失败的元组。
编程语言不可知论
它可以用任何编程语言进行编码。即使Storm平台运行在JVM上,写在上面的应用程序也可以用任何可以读写到标准I/O的编程语言编写。
希望本文有助于澄清实时流机制(如Apache Storm)在大数据处理中的使用。
原文:https://dzone.com/articles/need-for-using-real-time-stream-processing-systems
本文:http://jiagoushi.pro/node/986
讨论:请加入知识星球或者微信圈子【首席架构师圈】
- 登录 发表评论
- 24 次浏览
最新内容
- 3 days 10 hours ago
- 3 days 12 hours ago
- 3 days 12 hours ago
- 6 days 4 hours ago
- 6 days 11 hours ago
- 6 days 12 hours ago
- 6 days 12 hours ago
- 6 days 12 hours ago
- 1 week 3 days ago
- 1 week 4 days ago