The default memory size and disk overflow path of HetuEngine are not the best. You need to adjust node resources in the cluster based on the actual service and server configuration of the cluster to achieve the optimal performance.
Parameter |
Default Value |
Recommended Value |
Description |
Parameter File |
---|---|---|---|---|
yarn.hetuserver.engine.coordinator.memory |
5120 |
At least 2 GB less than that of yarn.scheduler.maximum-allocation-mb |
Memory size used by a Coordinator node |
application.properties |
yarn.hetuserver.engine.coordinator.number-of-containers |
2 |
2 |
Number of Coordinator nodes |
application.properties |
yarn.hetuserver.engine.coordinator.number-of-cpus |
1 |
At least two vCores less than yarn.scheduler.maximum-allocation-vcores |
CPU vCores used by a Coordinator node |
application.properties |
yarn.hetuserver.engine.worker.memory |
10240 |
At least 2 GB less than that of yarn.scheduler.maximum-allocation-mb |
Memory size used by a worker node |
application.properties |
yarn.hetuserver.engine.worker.number-of-containers |
2 |
Adjusted based on application requirements |
Number of worker nodes |
application.properties |
yarn.hetuserver.engine.worker.number-of-cpus |
1 |
At least two vCores less than yarn.scheduler.maximum-allocation-vcores |
CPU vCores used by a Worker node |
application.properties |
Xmx size in the extraJavaOptions parameter |
8GB |
Max (Memory size used by a Worker node – 30 GB, Memory size used by a Worker node x 0.7) |
Maximum available memory of the worker JVM process |
worker.jvm.config |
query.max-memory-per-node |
5GB |
Worker JVM x 0.7 |
Maximum available memory of a Query node |
worker.config.properties |
query.max-total-memory-per-node |
5GB |
Worker JVM x 0.7 |
Maximum available memory of a Query + System node |
worker.config.properties |
memory.heap-headroom-per-node |
3 GB |
Worker JVM x 0.3 |
Maximum available memory of a system heap node |
worker.config.properties |
Xmx size in the extraJavaOptions parameter |
4GB |
Max (Memory size used by a Coordinator node – 30 GB, Memory size used by a Coordinator node x 0.7) |
Maximum available memory of the Coordinator JVM process |
coordinator.jvm.config |
query.max-memory-per-node |
3GB |
Coordinator JVM x 0.7 |
Maximum memory that can be used for node query |
coordinator.config.properties |
query.max-total-memory-per-node |
3GB |
Coordinator JVM x 0.7 |
Maximum available memory of a Query + System node |
coordinator.config.properties |
memory.heap-headroom-per-node |
1GB |
Coordinator JVM x 0.3 |
Maximum available memory of a system heap node |
coordinator.config.properties |
query.max-memory |
7GB |
Sum(query.max-memory-per-node) x 0.7 |
Maximum available memory of a Query cluster |
worker.config.properties/coordinator.config.properties |
experimental.spiller-spill-path |
CONTAINER_ROOT_PATH/tmp/hetuserver/hetuserver-sqlengine/ |
One or more independent SSDs |
Disk output file path |
worker.config.properties/coordinator.config.properties |
experimental.max-spill-per-node |
10 GB |
Sum(Available space of each node) x 50% |
Available disk space for storing output files of all queries on a node |
worker.config.properties/coordinator.config.properties |
experimental.query-max-spill-per-node |
10 GB |
80% of the available disk space on a node |
Available disk space for storing output files of a query on a node |
worker.config.properties/coordinator.config.properties |