首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每个JVM中的Spark流连接池

每个JVM中的Spark流连接池
EN

Stack Overflow用户
提问于 2017-09-02 09:47:53
回答 1查看 2.2K关注 0票数 1

在我的spark streaming应用程序中,我有许多I/O操作,如codis、hbase等。我想确保每个executor中只有一个连接池,我如何才能优雅地做到这一点?现在,我分散地实现了一些静态类,这不利于管理。如何将它们集中到一个类中,比如xxContext,或者像SparkContext,需要我广播它吗?我知道广播大型只读数据集很好,但是这些连接池呢?Java或scala都可以接受。

EN

回答 1

Stack Overflow用户

发布于 2017-09-02 09:53:16

foreachPartition最适合

它的示例代码片段

代码语言:javascript
复制
val dstream = ...

dstream.foreachRDD { rdd =>

  //loop through each parttion in rdd
  rdd.foreachPartition { partitionOfRecords =>

    //1. Create Connection object/pool for Codis, HBase

    // Use it if you want record level control in rdd or partion
    partitionOfRecords.foreach { record =>
      // 2. Write each record to external client 
    }
    
    // 3. Batch insert if connector supports from an RDD to external source
  }

  //Use 2 or 3 to write data as per your requirement 
}

Another SO Answer for similar use case

检查这个:Design Patterns for using foreachRDD

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

https://stackoverflow.com/questions/46009763

复制
相关文章

相似问题

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