问题标签 [lambda-architecture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1411 浏览

cassandra - 使用 Apache Spark 的 Lambda 架构

我正在尝试使用以下工具实现 Lambda 架构:用于接收所有数据点的 Apache Kafka、用于批处理(大数据)的 Spark、用于实时(快速数据)的 Spark Streaming 和用于存储结果的 Cassandra。

此外,我收到的所有数据点都与用户会话相关,因此,对于批处理,我只对会话完成后处理数据点感兴趣。所以,由于我使用的是 Kafka,解决这个问题的唯一方法(假设所有数据点都存储在同一个主题中)是让批处理获取主题中的所有消息,然后忽略那些对应于会话的那些还没有完成。

所以,我想问的是:

  • 这是实现 Lambda 架构的好方法吗?还是应该改用 Haddop 和 Storm?(我找不到有关使用 Kafka 和 Apache Spark 进行批处理、Map Reduce 的人的信息)
  • 有没有更好的方法来解决用户会话问题?

谢谢。

0 投票
1 回答
894 浏览

java - 使用 Hadoop、Apache Spark、HBase 实现 lambda 架构

我想用一个简单的例子来实现 lambda 架构。我无法将我的技术堆栈融入 lambda 架构的每一层。

我想实时找出 twitter 推文中最受欢迎的 10 个主题标签。我列出了http://lambda-architecture.net/中每一层野兔的用途。

  • 所有进入系统的数据都被分派到批处理层和速度层进行处理。
  • 批处理层有两个功能:(i)管理主数据集(一组不可变的、仅附加的原始数据),以及(ii)预先计算批处理视图。
  • 服务层索引批处理视图,以便可以以低延迟、即席的方式查询它们。
  • 速度层补偿了对服务层更新的高延迟,并且只处理最近的数据。
  • 任何传入的查询都可以通过合并批处理视图和实时视图的结果来回答。

我可以用每一层解决我的问题的哪一部分。我正在使用 Apache Spark 和 Hadoop HDFS 技术堆栈。

0 投票
2 回答
2534 浏览

cassandra - HBase 还是 Cassandra?

在我的 lambda 架构中,我正在讨论是使用 HDFS 还是 Cassandra 来存储我的不可变数据。我需要 Cassandra 来处理在线请求等,所以它是技术堆栈的强制性部分。现在,如果没有必要,我不想将新工具 (HDFS) 引入堆栈。所以我的问题是,如果我不使用 HDFS 并使用 Cassandra 来托管我的不可变数据,我会缺少什么。

编辑:

我了解 HDFS 是分布式文件系统,而 Cassandra 是 NoSQL DB。尽管如此,两者都支持数据复制,都支持高吞吐量写入。此外,Cassandra 支持低潜在数据检索。那么我是否正确地说 HDFS 不会为我提供太多提升?

0 投票
1 回答
44 浏览

mysql - 如何升级我们的短/长记忆期限以进行实时处理

我们的移动应用程序跟踪用户事件(事件可以有多种类型)

每个报告用户事件及以后的移动设备都可以检索它。

我想写给 Redis 和 Mysql。

当用户请求时:

问题:

事实:

这种机制有什么解决方案来获得良好的 qos 吗?

谢谢你。

0 投票
3 回答
175 浏览

real-time - 为什么不单独使用火花流

我没有太多使用 Kafka/Spark-Streaming 的经验,但我读过很多关于该组合在构建用于分析/仪表板的实时系统方面有多棒的文章。有人可以向我解释为什么火花流不能单独完成吗?换句话说,为什么 Kafka 介于数据源和 spark-streaming 之间?

谢谢

0 投票
2 回答
1619 浏览

java - 如何让 Spark 完成后自动重启作业?

我正在构建一个 lambda 架构,需要 Spark 作为它的批处理部分,以定期或在完成后立即重新启动,或者让 Spark Streaming 作业调用重新启动。我看过一些东西,我可能不了解 Spark 上下文,但不确定是否可以将 Spark 上下文放入循环中。任何人都可以提供任何快速指导吗?另一个快速的问题是,考虑到数据会不断地添加到 HBase 中,Spark 将从那里读取数据,缓存有什么用处吗?在此先感谢您的帮助。

编辑:如果我实现 SparkListener 并在作业结束时调用收集,所有计算都会重做吗?

0 投票
0 回答
633 浏览

java - Spark Ba​​tch 正在暂停 Spark Streaming 作业

我有一个独立的 Spark 在我的计算机上的虚拟机上运行。Spark Streaming 从 Kafka 获取数据,将其保存到 HBase 表中,然后对其进行处理并将结果保存到另一个表中。

Spark Ba​​tch 在处理结果表中查询最新条目,并使用其中的数据来确定要从未处理数据表中查询哪些数据。批处理作业有一个无限的 while 循环,使批处理在完成后重新启动。它和流式作业都将调度程序设置为公平。

我有一个客户端应用程序,它通过首先将生成的信息流式传输到 Kafka,然后为流式传输层启动一个单独的线程,然后在一定延迟后为批处理启动一个单独的线程,以正确的顺序运行所有这些事情。

我的问题是流运行并且没有抱怨,使用 3 个提供的内核中的 2 个,但是当批处理作业开始时,流说它正在运行,但是 HBase 表清楚地显示,虽然批处理作业正在写入他们的表,流媒体作业不写任何东西。此外,当这一切发生时,流式传输日志会暂停。

我设置要运行的线程的方式是这样的:

批处理和流式处理的启动是通过 ProcessBuilder 完成的,如下所示:

有谁知道为什么会这样?我怀疑这只是 Spark 没有像我希望的那样管理任务,但不知道该怎么做。

0 投票
2 回答
249 浏览

apache-spark - 如何在 kappa 架构中使用 datatorrent?

我读了很多关于 lambda 和 kappa 架构的文章,在这些架构中我们需要使用 Apache Spark 或 Apache Storm。我刚刚发现了一个名为 DataTorrent 的新工具,它可以进行批处理和实时处理。我想知道 DataTorrent 是否可以同时执行 lambda(或 kappa)架构的批处理和速度层?

干杯,

0 投票
1 回答
1152 浏览

hadoop - 使用 Elasticsearch 实时分析事件日志

每次更改某些设备的属性时,我都会收集事件日志。为此,我决定使用:

  1. Logstash - 我的代理 IoT 应用程序以 JSON 格式向其中发送日志,
  2. Elasticsearch - 用于存储数据(日志),
  3. Kibana - 用于数据可视化。

定期发送带有日志的 JSON,其格式如下:

Elasticsearch 中单个事件条目的示例如下所示:

我的目标是创建一个带有某种仪表板的网站,在合理的时间内显示分析的数据(几分钟应该是可以接受的),即:

  • 显示能源消耗历史并预测特征中的消耗
  • 检测能源消耗或其他因素(如灯光或暖气使用)的异常情况
  • 根据某种不复杂的统计数据显示推荐,即“您可以将给定设备从位置 1 移动到位置 2,因为那里更需要它(比在其他地方更密集地使用)”等。

虽然最后一点非常简单——我可以在 Elasticsearch 中使用简单的查询或聚合,然后将其与某个阈值进行比较,但前两点需要深入分析,如机器学习或数据挖掘。

目前,该系统配备了大约 50 台设备,平均每 10 秒更新一次状态。未来设备的数量可以增加到 50,000 台。假设一个事件日志为 100 字节,它每年可以在 Elasticsearch 中产生大约 15 TB 的数据。

一般的问题是 - 这种系统的合理解决方案/技术/架构是什么?

  1. 将我的所有日​​志存储在 Elasticsearch 中是一个合理的开始吗?
  2. 我认为 es-hadoop 库使用 Elasticsearch 和 Apache Spark 能够使用 Spark 中的 Mlib 处理我的数据 - 这是一个合理的方向吗?
  3. 我是否可以只使用 Elasticsearch 将我的所有数据存储在其中并仅使用 Spark 和 Mlib 提供深入分析,还是应该考虑实施所谓的“Lambda 架构”,将 Elasticsearch 视为速度层?我对使用 Kafka、Apache Storm 的各种配置有些不满,但我不确定我是否需要它。由于该项目应在一个月内完成并且我是初学者,因此我担心复杂性,因此担心此类实施所需的时间。
  4. 如果数据负载小 10 倍(每年大约 1.5 TB)怎么办?你的答案会一样吗?
0 投票
1 回答
746 浏览

scala - Spark Streaming NoClassDefFoundError 错误

我正在尝试创建 Spark Kafka Cassandra 集成。现在我可以连接到 cassandra 但是当我尝试使用创建 SparkStreamingContext 对象时

我能够导入和编写上面的代码。但是当我尝试构建和运行代码时,我面临以下错误:

现在我无法理解为什么我无法在运行时创建 SparkStreaming 对象。

请帮忙。因为我是使用整个 scala 和 lambda 架构堆栈的新手。

下面是 build.sbt 里面的配置:

以下是日志。现在 M 无法打印字数并将其存储到 cassandra db 中。