热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

ApacheSpark独立模式:核心数量

如何解决《ApacheSpark独立模式:核心数量》经验,为你挑选了1个好方法。

我试图了解Spark内部的基础知识和用于在本地模式下提交应用程序的Spark文档说spark-submit --master:

local [K]使用K工作线程在本地运行Spark(理想情况下,将其设置为计算机上的核心数).

local [*]使用与计算机上的逻辑核心一样多的工作线程在本地运行Spark.

由于所有数据都存储在单个本地计算机上,因此不会受益于RDDs 上的分布式操作.

当Spark使用多个逻辑核心时,它如何受益以及内部正在发生什么?



1> David..:

系统将分配额外的线程来处理数据.尽管仅限于一台机器,它仍然可以利用现代服务器中可用的高度并行性.

如果你有一个合理大小的数据集,比如说有十几个分区,你可以测量使用local [1] vs local [n]所需的时间(其中n是你机器中的核心数).您还可以看到机器利用率的差异.如果您只有一个核心指定使用,它将只使用100%的一个核心(加上一些额外的垃圾收集).如果你有4个核心,并指定local [4],它将使用400%的核心(4个核心).并且可以显着缩短执行时间(尽管通常不会缩短4倍).


两条评论.首先,对于流式传输,您必须为每个输入源分配一个专用线程,并且至少有一个用于主处理,因此如果您正在收听一个套接字,则至少需要"本地[2]".其次,如果开销超过收益,有时单个线程将比多线程更快.
推荐阅读
author-avatar
高远PASTOR
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有