首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Dataflow对Apache Spark

Google Dataflow对Apache Spark
EN

Stack Overflow用户
提问于 2015-11-04 09:28:07
回答 4查看 16.9K关注 0票数 32

我正在调查、Google、Dataflow、Apache ,以决定哪种解决方案更适合我们的大数据分析业务需求。

我发现在spark平台中有Spark SQLMLlib来进行结构化数据查询和机器学习。

我想知道谷歌数据流平台中是否有相应的解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-04 20:44:13

如果您能够对您的特定用例进行一些扩展,这将有所帮助。在"Bigdata分析“方面,您想做些什么?简单的回答..。视情况而定:)

以下是与诉Spark和Hadoop先生有关的一些关键架构要点。

  • 资源管理:云数据流是一个完全随需应变的执行环境。具体来说-当您在Dataflow中执行作业时,只会根据需要分配该作业的资源。没有跨作业的资源共享/争用。与Spark或MapReduce集群相比,您通常会部署X节点集群,然后提交作业,然后跨作业优化节点资源。当然,您可以构建和删除这些集群,但是Dataflow模型针对的是资源管理方面的免费开发操作。如果要优化资源使用以满足作业需求,则Dataflow是控制成本并几乎忘记资源调优的可靠模型。如果您喜欢多租户风格的集群,我建议您查看,因为它提供了随需应变的集群管理方面,如Dataflow,但侧重于类Hadoop工作负载,如MR、Spark、Pig、.
  • 交互性:目前Cloud没有提供交互模式。这意味着,一旦提交了一个作业,工作资源就会绑定到所提交的图表中,并且大部分数据将根据需要加载到资源中。如果您希望通过内存RDD将数据加载到集群中,然后动态执行查询,那么Spark可以是一个更好的模型。挑战在于,随着数据大小和查询复杂性的增加,您将不得不处理devOps。现在,如果您的大多数查询都可以用SQL语法表示,那么您可能需要查看BigQuery。BigQuery提供了数据流的“随需应变”方面,并使您能够交互地执行对海量数据(如petabytes )的查询。在我看来,BigQuery最大的优点是您不必考虑/担心硬件分配来处理数据大小。也就是说,随着数据大小的增加,您不必考虑硬件(内存和磁盘大小)配置。
  • 编程模型:数据流的编程模型是功能偏倚的,而不是经典的MapReduce模型。Spark和Dataflow在API原语方面有许多相似之处。需要考虑的是: 1) Dataflow的主要编程语言是Java。有一个Python正在开发中。Dataflow Java是开源的,并且已经移植到Scala。如今,Spark有了更多的SDK表面选择,包括GraphX、流、Spark和ML。2)数据流是一种基于批处理和流的DAG开发的统一编程模型。目的是消除在批处理和流模型之间移动时的复杂性和成本切换。相同的图形可以在任何一种模式下无缝运行。3)目前,Cloud不支持基于收敛/迭代的图形执行。如果你需要像MLib这样的东西的力量,那么火花就是最好的选择。记住,这就是今天的状况。
  • 流和窗口:数据流(构建在统一编程模型的基础上)被设计成一个高度可靠、持久和可伸缩的流执行环境。Dataflow和Spark之间的关键区别之一是,Dataflow使您能够轻松地处理数据的真实事件时间与仅在到达时处理数据的图形。您可以根据事件时间或到达时间将数据窗口设置为固定窗口、滑动窗口、会话窗口或自定义窗口。数据流还提供触发器(应用于Windows),使您能够控制如何处理延迟到达的数据。net您在拨号层的正确性控制,以满足您分析的需要.例如,假设您有一个与100个边缘节点交互的移动游戏。这些节点创建了10000的事件,第二次与游戏有关。假设一组节点无法与后端流分析系统通信。在Dataflow的情况下--一旦数据到达--您可以控制如何处理与查询正确性需要相关的数据。数据流还提供了升级流媒体作业的能力。例如,假设您在转换中发现了一个逻辑错误。您可以在不丢失现有窗口状态的情况下升级在飞行中的作业。net,您可以让您的业务运行。

net:-如果您主要从事ETL样式的工作(过滤、成形、加入、.)或者批处理样式的MapReduce数据流是一个很好的路径,如果您想要最小的devOps。

  • 如果您需要实现ML样式图,那么可以选择Spark路径并尝试使用Dataproc --如果您正在使用ML,并且首先需要使用ETL来清理您的培训数据,实现一个与Dataflow和Dataproc混合的工具--如果您需要interactivity,那么使用SQL表示查询的话,BigQuery也是一个不错的选择--如果您需要在流上处理您的ETL和或MR jobs,则Dataflow是一个很好的选择。

所以..。你在想什么?

票数 51
EN

Stack Overflow用户

发布于 2015-11-04 17:12:37

我都试过了:

数据流仍然非常年轻,对于使用它来执行ML并不是“开箱即用”的解决方案(即使您可以在转换中实现算法),您可以将进程数据输出到云存储中,然后再用另一个工具读取它。

Spark将被推荐,但您必须自己管理群集。然而,有一个很好的选择: Google

您可以使用spark开发分析工具,并在集群上使用一个命令进行部署,dataproc将管理集群本身,而不必调整配置。

票数 4
EN

Stack Overflow用户

发布于 2017-10-19 20:48:13

我已经用星星之火构建了代码,DataFlow .Let me把我的想法。

星星之火/DataProc:我在ETL中使用了很多火花(Pyspark)。您可以使用SQL和您选择的任何编程语言。有很多可用的函数(包括窗口函数)。构建您的数据,并编写您的转换,它可以是超级快。一旦数据被缓存,对Dataframe的任何操作都会很快。

您可以简单地在GCS上构建hive外部表。然后,您可以使用并将数据加载到大型查询中。这是批处理用的。

对于流,您可以使用火花流并将数据加载到大查询中。

现在,如果您已经准备好集群,那么您必须考虑是否要迁移到Google。我发现Data (/Spark)提供的更好,因为您不必担心很多集群管理。

DataFlow :它被称为apache。在这里,您可以用Java/Python或任何其他语言编写代码。您可以在任何框架(Spark/MR/Flink)中执行代码,.This是一个统一的模型。在这里,您可以进行批处理和流数据处理。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33518104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档