跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

解释为什么Apache Storm这样的系统与Hadoop这样的知名技术相比是有用的。

让我们来看看笔记本品牌实时情感分析的经典问题。

进行意见分析,处理流程如下图所示:

Image title

  • 从Twitter、Facebook、电子商务网站等不同来源收集数据。
  • 在“高通量”等关键词的基础上,我们必须对数据进行过滤。
  • 通过各种来源产生每个消息的情绪。
  • 具有存储处理数据的存储机制。

现在的问题是我能不能用大数据系统来解决。请使用Hadoop查看下面的流程图:

Image title

如果我们运行的是配置单元查询、Pig脚本或MapReduce,则处理结果将需要几个小时,因为它们必须从HDFS(从磁盘读取)读取数据,然后再进行处理,因此理想情况下,它们无法实时处理数据(它们遵循静态数据原则)。

因此,对于Hadoop是否能够处理实时处理的问题,广泛的答案是否定的,因为Hadoop是用于批处理的,生成结果可能需要几个小时。

总之,由于Hadoop采用面向批处理的方法,因此它无法解决实时问题。

在许多这样的用例中,我们需要实时处理数据,例如:

  • 欺诈检测
  • 情绪分析。
  • 日志监视
  • 处理客户行为

那么现在我们该如何解决这个特殊的问题呢?通过使用一些实时流机制(一切都在内存中完成,遵循动态数据原理)。

此实时处理的经典流程如下所示:

Image title

但如果我们采用这种方法,则需要回答以下问题。

  • 数据流:数据需要在数据管道中以流的形式发送。
  • 容错:如果任何进程出现故障,那么故障转移机制是什么?
  • 扩展:如果数据量增加,我们可以轻松地扩展集群以增加处理能力吗?
  • 保证消息处理:是否有处理消息的保证?
  • 编程语言不可知:它是否独立于编程。

有一些实时流机制,如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

讨论:请加入知识星球或者微信圈子【首席架构师圈】

最后修改
星期四, 一月 5, 2023 - 21:56
Tags
 
Article