apache-spark - Spark 中的核心数与线程数
问题描述
几个月前我已经开始学习 spark 并且正在研究架构并得到以下疑问。当 spark 驱动程序向纱线请求资源(核心和内存)时,纱线是否提供实际的核心或线程。spark中的内核数和线程数之间是否有任何关系(一般来说没有)。Yarn/OS 在 CPU 和内核上提供了一个抽象层,因此根据我的理解,当驱动程序请求资源(内核)时,它将获取线程。所以实际上我们可以拥有比 CPU 更多的线程,我的理解是否正确。有什么方法可以识别用于执行任务的核心(不是线程)。
我浏览了链接(Apache Spark:核心数与执行程序数),它解释了核心和执行程序之间的关系,而不是核心和线程之间的关系。一个执行器可以有 4 个核心,每个核心可以有 10 个线程,因此一个执行器可以并行运行 10*4 = 40 个任务。或者它在执行程序中只有 4 个任务。
如果我们每个核心可以有更多线程,有没有一种方法可以告诉 spark 每个核心启动 10 个线程。
所以一行中的问题是:当我说启动 2 个执行器,每个执行器有 4 个核心时,我们总共得到 8 个核心还是 8 个线程。
解决方案
推荐阅读
- dictionary - Oracle SQL Developer - 地图视图已禁用
- python - 如果元素包含在列表中,则从列表中删除元组
- r - 如何更改弹性表页脚中第一个单词的字体?
- matplotlib - 日期和条形图的年份提取
- html - CSS - 悬停在第二个 div 上时如何隐藏第一个 div(反之亦然)?
- rest - ApplicationScope 和 REST 调用
- java - Button 的 setButtondrawable 和 setBackground 方法有什么区别?
- c++ - VisualStudio 2017 但不是 VisualStudio 2019 中的“'constexpr' 在此处无效”错误
- javascript - Firebase Cloud Function listUser 获得 1000+ 用户
- python - MCMC 方法一维铁磁伊辛模型