gpt4 book ai didi

java - Spark 独立

转载 作者:行者123 更新时间:2023-12-01 22:13:05 29 4
gpt4 key购买 nike

我的机器上有带有 4 个 cpu 的 Ubuntu 14.04(nproc 恢复了 4 个)。我安装并执行 Spark Standalone 后(本地),我可以自己定义不同数量的奴隶。例如我想要有4个奴隶( worker )。执行完这些数量的从站后,我看到了下一个 Spark 独立屏幕:

enter image description here

如果我的 uinique 工作线程已经有 4 个核心(我认为 1 个核心相当于 1 个 cpu),那么我的 Corse 总数为 16(橙色区域),内存为 11 GB,怎么可能?如果我有 4 个奴隶而不是 1 个,那么优势是什么?可能,如果我在本地执行它,我没有任何(它也会更慢),但是如果我有一个hadoop集群,应该如何共享核心以及如何提高程序执行的速度?还有一些问题,如果我启动某个应用程序(scala、python 或 java),第一个应用程序正在运行,其他 2 或 3 个应用程序应该处于等待模式。是否可以并行运行所有应用程序?

最佳答案

您在这里误解了几件事:

独立

意味着“本地”。 Standalone模式是Spark内置的application master,可以用 YARN 代替或MESOS 。您可以根据需要使用任意数量的节点。您确实只能在给定数量 X 的线程上本地运行,例如运行 ./bin/spark-shell --master local[X] 命令。

核心/内存

这些数字反射(reflect)了集群中的资源总量(四舍五入)。在这里,如果我们进行数学计算,您将拥有 4 * 4 cpu = 16 cpu4 * 2.7 GB ~= 11 GB 内存。

资源管理

If I have a hadoop cluster, how the cores should be shared

Hadoop集群与Spark集群不同。有多种方法可以将两者结合起来,但大多数时候,您将与 Spark 结合使用的 Hadoop 部分是 HDFS,即分布式文件系统。

根据您与 Spark 一起使用的应用程序主机,内核的管理方式会有所不同:

  • YARN 在节点上使用节点管理器来启动容器,您可以在其中启动 Spark 的执行器(一个执行器 = 一个) jvm)

  • Spark Standalone 使用工作线程作为启动执行程序的网关

  • Mesos直接启动执行器

日程安排

Hadoop 和 Spark 使用一种称为 delay scheduling 的技术,它基本上依赖于这样的原则:应用程序可以决定拒绝工作人员的报价,放置其任务之一,并希望以后能够在数据局部性方面收到更好的报价。

How I can improve the speed of programm execution?

这是一个复杂的问题,如果不了解您的基础设施、输入数据和应用程序,就无法回答。以下是一些会影响您的性能的参数:

  • 可用内存量(主要用于缓存经常使用的RDD)
  • 对数据/RDD 使用压缩
  • 应用程序配置

Is it possible to run all applications parallel to each other?

默认情况下,独立主站为其应用程序使用 FIFO 调度程序,但您可以在应用程序内设置公平调度程序。欲了解更多详情,请参阅scheduling documentation .

关于java - Spark 独立,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536071/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com