当前位置: 首页 > 知识库问答 >
问题:

针对NRT数据应用程序的谷歌云数据流

华良才
2023-03-14

我正在评估Kafka/Spark/HDFS开发NRT(sub-sec)java应用程序的能力,该应用程序从外部网关接收数据,并将其发布到桌面/移动客户端(消费者),用于各种主题。同时,数据将通过流式处理和批处理(持久性)管道传输,用于分析和ML。

例如,流将是。。。

  1. 独立的TCP客户端从外部TCP服务器读取流数据
  2. 客户端根据数据包(Kafka)发布不同主题的数据,并将其传递给流管道进行分析(Spark)
  3. 桌面/移动消费者应用程序订阅各种主题并接收NRT数据事件(Kafka)
  4. 消费者还从流/批处理管道(Spark)接收分析

必须对Kafka群集进行管理、配置和监控,以获得最佳性能和可扩展性。这可能需要额外的人力资源和工具来管理操作。

Kafka、Spark和HDFS可以选择部署在Amazon EC2(或使用连接器的Google云)上。

我读到了关于Google云数据流、云存储、BigQuery和Pub-Sub的内容。数据流提供了自动缩放和实时监控数据管道的工具,这非常有用。但安装有一些限制,例如发布订阅推送要求客户端使用httpsendpoint,而应用部署需要使用web服务器,例如应用引擎webapp或GCE上的web服务器。

这可能不如部署一个可以利用pub-sub和数据流管道来流式传输数据的双向tcp/ip应用程序有效(我担心使用超文本传输协议时的延迟)。

理想情况下,谷歌云上的首选设置是运行TCP客户端,该客户端连接到部署在GCE上的外部网关,该网关使用pub-sub将数据推送到桌面消费者应用程序。此外,它还将使用cloudera spark connector for data flow,利用spark for ML的数据流管道进行分析和云存储(预测API有点限制)。

人们可以在Google云上部署Kafka/Spark/HDFS等,但这有点违背了利用Google云技术的目的。

感谢您对以上设置是否可以使用谷歌云或使用EC2/Kafka/Spark等进行思考。

共有2个答案

葛修真
2023-03-14

从数据流的角度来看,这听起来很适合,尤其是当您将混合流式和批式分析时。如果您还没有,请查看我们的移动游戏演练。

我不太确定您对ML使用Cloudera的数据流/Spark运行程序是什么意思。该运行程序在Spark上运行数据流代码,但不是相反。

蓬高谊
2023-03-14

谈到云发布/订阅方面,需要记住以下几点:

  • 如果您不想在订阅服务器中运行web服务器,可以考虑使用基于拉的订阅服务器,而不是基于推的订阅服务器。为了最小化延迟,您希望在任何时候都至少有几个未完成的拉请求
 类似资料:
  • 我正在看新的谷歌云数据存储,看起来很棒。但有件事我不明白。。。它应该替代谷歌应用引擎数据存储吗?我如何在GAE内部使用它?它们之间有什么区别? 我在Java有一个GAE应用程序,它使用3个实体,每个实体都有数千行,我需要经常做连接...

  • 当我运行Dataflow作业时,它会将我的小程序包(setup.py或requirements.txt)上传到Dataflow实例上运行。 但是数据流实例上实际运行的是什么?我最近收到了一个stacktrace: 但从理论上讲,如果我在做,这意味着我可能没有运行这个Python补丁?你能指出这些作业正在运行的docker图像吗,这样我就可以知道我使用的是哪一版本的Python,并确保我没有在这里找

  • 我正在尝试使用谷歌云数据流将谷歌PubSub消息写入谷歌云存储。PubSub消息采用json格式,我要执行的唯一操作是从json到parquet文件的转换。

  • storage和colab之间的链接如下所示:

  • 谷歌地图        LSV默认的对谷歌影像进行了加载,如果需要加载其他的谷歌地图数据,可以通过LSV中直接点击即可加载。 谷歌历史影像        LSV中支持对谷歌历史影响的查看,。通过历史影像,我们可以分析出很多单一影像无法获取的信息。触摸历史,寻找其他时空中发生的事情和变迁。历史影像主要用于进行多时相对比、去云、多角度观察、小路寻找等。 开启前: 开启后:

  • 谷歌地图        LSV默认的对谷歌影像进行了加载,如果需要加载其他的谷歌地图数据,可以通过LSV中直接点击即可加载。 谷歌历史影像        LSV中支持对谷歌历史影响的查看,。通过历史影像,我们可以分析出很多单一影像无法获取的信息。触摸历史,寻找其他时空中发生的事情和变迁。历史影像主要用于进行多时相对比、去云、多角度观察、小路寻找等。 开启前: 开启后: