cry*_*bhu 5 apache-spark kubernetes apache-spark-sql google-cloud-dataflow apache-beam
有没有办法根据数据作业的大小动态扩展Pod的内存大小(我的用例)?
目前我们有使用内存量定义的Job和Pod,但我们不知道给定时间片(有时1000行,有时100,000行)的数据有多大.
因此,如果数据大于我们事先分配的内存,它将会中断.
我曾想过按数据量使用切片,即每10,000行切一次,我们就知道处理固定行数的内存需求.但我们正试图按时间聚合,因此需要时间片.
或任何其他解决方案,如Spark on kubernetes?
另一种看待它的方式:
我们如何在AWS上的Kubernetes中实现Cloud Dataflow
cry*_*bhu -1
我已经找到了部分解决方案。
\n请注意,此问题分为两个部分。
\n1. 让 Pod 根据数据作业的大小请求正确的内存量
\n2。确保该 Pod 可以找到要运行的 Node。
Kubernetes Cluster Autoscaler (CA) 可以解决第 2 部分。
\n https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
根据自述文件:
\nCluster Autoscaler 是一个工具,当集群中存在 pod 由于资源不足而无法运行时,它会自动调整 Kubernetes 集群的大小。
因此,如果有一个数据作业需要的内存多于当前运行节点中的可用内存,它将通过增加节点组的大小来启动一个新节点。
\n详细信息:
\n https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md
我仍然不确定如何做第 1 点。
\n\n第 1 点的替代方案是在没有特定内存请求或限制的情况下启动容器:\n https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/#if-you-don-t -指定内存限制
\n\n\n\n如果您未指定容器的内存限制,则适用以下情况之一:
\n\nRun Code Online (Sandbox Code Playgroud)\nThe Container has no upper bound on the amount of memory it uses. \nor\nThe Container could use all of the memory available on the Node where it is running.\n
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |