0

具有容量调度程序的 YARN 在为用户请求分配资源时将仅考虑内存如果我提交这样的 Spark 作业“--master yarn --deploy-mode client --driver-memory 4g --executor-memory 4g - -num-executors 1 --executor-cores 3" , yarn 会分配一个4gb 内存和 1 个 vcpu的 executor ,但是在执行任务时,它会并行执行 3 个任务。

是否单独使用单个内核一次执行一组 3 个任务?

因此,如果我启用 CPU 调度和 CGroups(在 HDP 集群中),yarn 会分配 3 个 vcpu 核心,并且这组 3 个任务将在每个 cpu 中执行吗?它真的会改善处理时间吗?

就目前而言,由于启动节点管理器时出现以下错误,我无法在集群(HDP 2.6.5 centos 7.5)中启用 CPU 调度“无法强制执行 cpu 权重;无法在以下位置写入 cgroup:/sys/fs/cgroup /cpu,cpuacct"

4

1 回答 1

0

不,vcores 和 vcpus 实际上是一个逻辑结构,与系统上的实际情况无关,但与正在运行的进程数量更密切相关。如果进程是为此而设计的,则操作系统(在这种情况下为 Linux)会将工作迁移到所有 CPU。由于运行多个线程,大多数长时间运行的 Java 应用程序都会执行此操作。

除非您启用 CGroups,否则 YARN 不会控制 CPU 内核。YARN 唯一控制的是内存使用情况。这无关紧要的原因是因为典型的 Hadoop 工作负载受 I/O 限制而不是 CPU 限制。

参考

于 2018-11-15T22:20:36.987 回答