我对设置以下spark submit参数时使用的正确标准感到非常困惑,例如:
spark-submit --deploy-mode cluster --name 'CoreLogic Transactions Curated ${var_date}' \
--driver-memory 4G --executor-memory 4G --num-executors 10 --executor-cores 4 \
/etl/scripts/corelogic/transactions/corelogic_transactions_curated.py \
--from_date ${var_date} \
--to_date ${var_to_date}
一个人告诉我,我使用了很多遗嘱执行人和核心,但他没有解释他为什么这么说。
有人能向我解释一下根据我的数据集设置这些参数时使用的正确标准吗(--drive-内存4G--执行器-内存4G--num-执行器10--执行器-核心4)?
以下情况相同
spark = SparkSession.builder \
.appName('DemoEcon PEP hist stage') \
.config('spark.sql.shuffle.partitions', args.shuffle_partitions) \
.enableHiveSupport() \
.getOrCreate()
我不太确定设置这个参数“spark.sql.shuffle.partitions”的标准是什么
有人能帮我把这件事记清楚吗?
提前谢谢你
在这个网站上有我需要的答案,一个很好的解释,还有一些例子。
http://site.clairvoyantsoft.com/understanding-resource-allocation-configurations-spark-application/
以下是其中一个例子:
案例1硬件-6个节点,每个节点有16个内核,64 GB RAM每个节点上首先,操作系统和Hadoop守护进程需要1个内核和1 GB,所以我们有15个内核,每个节点有63 GB RAM
我们从如何选择核数开始:
内核数=执行器可以运行的并发任务
所以我们可能会认为,每个执行器有更多的并发任务会带来更好的性能。但是研究表明,任何具有超过5个并发任务的应用程序都会导致糟糕的表现。所以最佳值是5。
这个数字来自于执行器运行并行任务的能力,而不是来自于系统有多少内核。因此,即使CPU中有两个(32)核,数字5也保持不变
执行人数:
进入下一步,每个执行器有5个内核,一个节点(CPU)中的可用内核总数为15个-我们得出每个节点有3个执行器,即15/5。我们需要计算每个节点上的执行器数量,然后得到作业的总数。
因此,有了6个节点,每个节点有3个执行器,我们总共得到了18个执行器。在18个执行器中,我们需要1个执行器(java进程)来控制纱线的应用程序。所以最终的数字是17名执行人
这17是我们在运行spark submit shell命令时使用–num executors给spark的数字
每个执行器的内存:
从上述步骤开始,我们每个节点有3个执行器。每个节点上的可用RAM为63 GB
因此,每个节点中每个执行器的内存为63/3=21GB。
然而,还需要较小的开销内存来确定每个执行程序对YARN的完整内存请求。
该开销的公式是max(384,.07*spark.executor.memory)
计算开销:.07*21(此处21按上述方式计算63/3) = 1.47
自1.47 GB起
从以上每21个中取上述=
所以执行器内存-19 GB
最终数字–Executors–17,Cores 5,Executor Memory–19 GB
标准设置 建立经由基地台与网络联机的网络设定,并保存至PSP™主机。最多可保存10组设定。 网络的设定方法会因您使用之环境而异。以下仅说明标准的设定范例。 1. 确认无线基地台的设定是否已经完成。 确认在PSP™主机的附近,是否设置了已与网络联机的无线基地台。无线基地台的设定通常需使用计算机进行。详情请询问设置无线基地台的人员。 2. 进入(设定)后,选择(网络设定)。 3. 选择[Infrast
我对YARN“公平调度器”有一个基本问题。根据“公平调度器-公平调度是一种将资源分配给应用程序的方法,以便所有应用程序在一段时间内平均获得相等的资源份额”的定义。 以下是我的理解和问题。 (1)如果多个应用程序在YARN上运行,那么它将确保所有应用程序在一段时间内获得或多或少相等的资源共享。 (2) 我的问题是,如果在纱线中此属性设置为true,那么在提交spark submit时使用以下配置会有
我正在尝试将用户的签入值插入数据库。为此,我调用函数并设置隐藏字段的值,然后尝试提交表单,但在表单提交后,隐藏字段的值被重置。 HTML代码 Javascript PHP代码 首先,它不满足这个if(isset($\u POST['checkinout']))
参数设置分为四部分:网站基本信息、统计代码、权限管理 和 安全设置 1.基本信息 1)网站基本信息:包括网站名称、网站简介、网站地址、图标样式设置等基本参数 2)统计图标显示:是指网站下方会出现我要啦的统计代码图标,可以对该图标的显示样式进行选择 (建议:设置统计图标,方便网站管理者点击图标进入报表查看统计数据) 3)页面地址显示:自定义选择是否在“入口网址”和“页面浏览”栏目中显示被浏
问题内容: 所以我的数字程序有问题,我很好奇它是否是一个精度问题(即四舍五入误差)。有没有一种快速的方法可以将程序中的所有float数组都更改为数组,而无需遍历我的代码并在各处键入内容。我的数组都是float64,但我从未明确写过,所以我希望有办法改变这种默认行为。 问题答案: 我不认为您可以更改中央“配置”来实现此目的。您可以执行的一些选择: 如果仅通过NumPy的工厂函数中的很少一个来创建数组