首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spark-Streaming和Cassandra中使用期货(Scala)

在Spark-Streaming和Cassandra中使用期货(Scala)
EN

Stack Overflow用户
提问于 2016-07-03 17:03:26
回答 1查看 587关注 0票数 2

我对spark比较陌生,我想知道在Cassandra中使用spark-streaming时的最佳实践是什么。

通常,在执行IO时,最好在Future中执行它(在Scala中)。然而,许多spark-cassandra-connector似乎是同步运行的。

例如:saveToCassandra (com.datastax.spark.connector.RDDFunctions)

为什么这些函数不是异步的,有什么好的原因吗?我应该用Future把它们包装起来吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-03 21:37:12

虽然在某些合法的情况下,您可以从驱动程序代码的异步执行中获益,但这并不是一般规则。你必须记住,驱动程序本身并不是执行实际工作的地方,特别是Spark执行是不同类型的约束的主题:

与资源分配和DAG拓扑相关的

  • 调度约束流应用程序中的
  • batch order

此外,把像saveToCassandra这样的操作看作IO操作是非常简单化的。Spark操作只是Spark作业的入口点,通常IO活动只是冰山一角。

如果您在每个批处理中执行多个操作,并且拥有足够的资源而不会对单个作业产生负面影响,或者您希望在驱动程序线程本身中执行某种类型的IO,那么异步执行可能会很有用。否则,你可能是在浪费时间。

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

https://stackoverflow.com/questions/38168390

复制
相关文章

相似问题

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