我读了集群模式概述,我仍然不能理解Spark独立集群和并行性中的不同进程。
worker是否是JVM进程?我运行bin\start-slave.sh
并发现它衍生了worker,这实际上是一个JVM。
根据上面的链接,执行程序是为运行任务的工作节点上的应用程序启动的进程。执行程序也是JVM。
这些是我的问题:
executor是每个应用程序。那么工人的角色是什么呢?它是否与执行程序协调并将结果反馈给驱动程序? 还是司机直接和执行人对话?如果是,那么工人的目的是什么?李< / p > < / >
如何控制应用程序的执行程序的数量?
任务可以在执行器中并行运行吗?如果是,如何配置执行器的线程数?
worker、executor和executor cores(——total-executor-cores)之间的关系是什么?
每个节点有更多的工人意味着什么?
更新
让我们举个例子来更好地理解。
< >强示例1: 具有5个工作节点的独立集群(每个节点有8个核心) 当我启动一个默认设置的应用程序时
< >强例2 与示例1相同的集群配置,但我使用以下设置运行了一个应用程序 ——executor-cores 10 ——total-executor-cores 10 . < / p >
< >强例3 与示例1相同的集群配置,但我使用以下设置运行了一个应用程序 ——executor-cores 10 ——total-executor-cores 50。< / p >
< >强4示例 与示例1相同的集群配置,但我使用以下设置运行了一个应用程序 ——executor-cores 50 ——total-executor-cores 50。< / p >
< >强5的例子 与示例1相同的集群配置,但我使用以下设置运行了一个应用程序 ——executor-cores 50 ——total-executor-cores 10 . < / p >
在这些例子中, 有多少个执行人?每个执行器有多少线程?多少核? 如何决定每个应用程序的执行者数量?它总是和工人数量一样吗?< / p >