--class=... --master k8s://https://%s:%s --deploy-mode cluster/client --conf spark.kubernetes.namespace=default --conf spark.app.name=spark-pi SparkPi.jar (MainApplicationFile: MainFile is the path to a bundled JAR, Python, or R file of the application.)
SPARK_HOME/bin/spark-submit args
Spark-on-k8s-operator controller run the spark-submit scripts
A candidate must contact a majority of the cluster in order to be elected, which means that every committed entry must be present in at least one of those servers
Raft determines which of two logs is more up-to-date by comparing the index and term of the last entries in the logs
简单来说,在发起选举投票时,需要携带最新的 log 信息,包括 index 及 term;term 越大越新,如果 term 相同,则 log 的长度越长越新;这可以保证新选举出来的 leader 包含了之前所有 commited 的信息
This property controls the maximum size that the pool is allowed to reach, including both idle and in-use connections. Basically this value will determine the maximum number of actual connections to the database backend.
决定了最大 Connections 数 (idle and in-use)
minimumIdle = maximumPoolSize
需要维持的最小 idle Connections 数
validationTimeout = 5s
This property controls the maximum amount of time that a connection will be tested for aliveness.
Open conduit - call each component and see if they can provide a conduit that can satisfy all these attributes - return the conduit id (a negative value indicates error)
rml_base_stubs.c
1
orte_rml_API_open_conduit
遍历 active 的 rml mod, 调用各个 rml mod 的 open_conduit, 例如 oob (rml_oob_component.c), 返回 mod 之后,存入 array,返回 array index
param = NULL; if (ORTE_SUCCESS != (rc = orte_regx.nidmap_create(orte_node_pool, ¶m))) { ORTE_ERROR_LOG(rc); return rc; } if (NULL != orte_node_regex) { free(orte_node_regex); } orte_node_regex = param; /* if this is too long, then we'll have to do it with * a phone home operation instead */ if (strlen(param) < orte_plm_globals.node_regex_threshold) { opal_argv_append(argc, argv, "-"OPAL_MCA_CMD_LINE_ID); opal_argv_append(argc, argv, "orte_node_regex"); opal_argv_append(argc, argv, orte_node_regex); /* mark that the nidmap has been communicated */ orte_nidmap_communicated = true; }
# download the openmpi-v4.0.0.tar.gz from the official website # untar and run configure ./configure --prefix=/usr/local/openmpi --enable-orterun-prefix-by-default # make and install make -j $(nproc) all make install