Sparkling Water Configuration Properties¶
The following configuration properties can be passed to Spark to configure Sparking Water.
Configuration properties independent of selected backend¶
Property name |
Default value |
H2OConf setter (* getter) |
Description |
---|---|---|---|
|
internal |
|
This option can be set either to |
|
None |
|
Name of H2O cluster. If this option is not set, the name is automatically generated |
|
-1 |
|
Limit for number of threads used by H2O, default |
|
true |
|
Decides whether H2O REPL is initiated or not. |
|
1 |
|
Number of parallel REPL sessions started at the start of Sparkling Water. |
|
true |
|
Decides whether listener which kills H2O cluster on the change of the underlying cluster’s topology is enabled or not. This configuration has effect only in non-local mode. |
|
true |
|
Enables check if run-time Spark version matches build time Spark version. |
|
true |
|
If unsupported Spark parameter is detected, then application is forced to shutdown. |
|
None |
|
Path to a Java keystore file with certificates securing H2O Flow UI and internal REST connections between
instances (driver + executors) and H2O nodes. When configuring this property, you must consider that a Spark executor
can communicate to any of H2O nodes and verifies H2O node according to the hostname specified in the keystore
certificate. You can consider usage of a wildcard certificate or you can disable the hostname verification
completely with the |
|
None |
|
Password for the Java keystore file. |
|
None |
|
Alias to certificate in the to the Java keystore file to secure H2O Flow UI and internal REST connections between Spark instances (driver + executors) and H2O nodes. |
|
false |
|
Enable hash login. |
|
false |
|
Enable LDAP login. |
|
false |
|
Enable Kerberos login. |
|
None |
|
Login configuration file. |
|
None |
|
Username used for the backend H2O cluster and to authenticate the client against the backend. |
|
None |
|
Password used to authenticate the client against the backend. |
|
None |
|
Path to a file containing H2O or Sparkling Water internal security configuration. |
|
false |
|
Automatically generate the required key store and password to secure secure H2O Flow UI and internal REST connections between Spark executors and H2O nodes. Hostname verification is disabled when creating SSL connections to H2O nodes. |
|
INFO |
|
H2O log level. |
|
None |
|
Location of H2O logs. When not specified, it uses {user.dir}/h2ologs/{AppId} or YARN container dir |
|
10000 |
|
Interval (in msec) for getting heartbeat from the H2O backend. |
|
60000 |
|
Timeout (in msec) for cluster formation. |
|
None |
|
Subnet selector for H2O running inside park executors. This disables using IP reported by Spark but tries to find IP based on the specified mask. |
|
-1 |
|
Interval specifying how often stack traces are taken on each H2O node. -1 means that no stack traces will be taken |
|
None |
|
Context path to expose H2O web server. |
|
false |
|
Decide whether the Scala cells in H2O Flow will run synchronously or Asynchronously. Default is synchronously. |
|
-1 |
|
Number of max parallel Scala cell jobs. The value -1 means not limited. |
|
1 |
|
Offset between the API(=web) port and the internal communication port on the client
node; |
|
54321 |
|
Base port used for individual H2O nodes |
|
600000 |
|
If a scoring MOJO instance is not used within a Spark executor JVM for a given timeout in milliseconds, it’s evicted from executor’s cache. Default timeout value is 10 minutes. |
|
None |
|
A string containing extra parameters passed to H2O nodes during startup. This parameter should be configured only if H2O parameters do not have any corresponding parameters in Sparkling Water. |
|
None |
|
Directory where flows from H2O Flow are saved. |
|
None |
|
Extra HTTP headers that will be used in communication between the front-end and back-end part of Flow UI. The headers should be delimited by a new line. Don’t forget to escape special characters when passing the parameter from a command line. |
|
false |
|
Enables secure communications among H2O nodes. The security is based on
automatically generated keystore and truststore. This is equivalent for
|
|
false |
|
If the property set to true, insecure communication among H2O nodes is allowed for the XGBoost algorithm even if the other security options are enabled |
|
None |
|
IP of H2O client node. |
|
-1 |
|
Exact client port to access web UI. The value |
|
false |
|
The client outputs verbose log output directly into console. Enabling the
flag increases the client log level to |
|
None |
|
Subnet selector for H2O client, this disables using IP reported by Spark but tries to find IP based on the specified mask. |
|
None |
|
Allows to override the base URL address of Flow UI, including the scheme, which is showed to the user. |
|
60000 |
|
Timeout in milliseconds specifying how often we check whether the the client is still connected. |
|
true |
|
If the property is enabled, Pysparkling or RSparkling client will verify certificates when connecting Sparkling Water Flow UI. |
|
true |
|
If the property is enabled, Sparkling Water will verify ssl certificates during establishing secured http connections to one of H2O nodes. Such connections are utilized for delegation of Flow UI calls to H2O leader node or during data exchange between Spark executors and H2O nodes. If the property is disabled, hostname verification is disabled as well. |
|
true |
|
If the property is enabled, Sparkling Water will verify a hostname during establishing of secured http connections to one of H2O nodes. Such connections are utilized for delegation of Flow UI calls to H2O leader node or during data exchange between Spark executors and H2O nodes. |
|
false |
|
If enabled, H2O instances will create JDBC connections to a Kerberized Hive so that all clients can read data from HiveServer2. Don’t forget to put a jar with Hive driver on Spark classpath if the internal backend is used. |
|
None |
|
The full address of HiveServer2, for example hostname:10000. |
|
None |
|
Hiveserver2 Kerberos principal, for example hive/hostname@DOMAIN.COM |
|
None |
|
A pattern of JDBC URL used for connecting to Hiveserver2. Example: |
|
None |
|
An authorization token to Hive. |
|
None |
|
Location of iced directory for H2O nodes. |
|
300000 |
|
Timeout in milliseconds for Rest API requests. |
Internal backend configuration properties¶
Property name |
Default value |
H2OConf setter (* getter) |
Description |
---|---|---|---|
|
None |
|
Expected number of workers of H2O cluster. Value None means automatic detection of cluster size. This number must be equal to number of Spark executors |
|
10 |
|
Multiplication factor for dummy RDD generation. Size of dummy RDD is
|
|
10 |
|
Number of retries for creation of an RDD spread across all existing Spark executors |
|
20 |
|
Starting size of cluster in case that size is not explicitly configured. |
|
5 |
|
Subsequent successful tries to figure out size of Spark cluster, which are producing the same number of nodes. |
|
None |
|
Either a string with the Path to a file with Hadoop HDFS configuration or the hadoop.conf.Configuration object in the org.apache package. Useful for HDFS credentials settings and other HDFS-related configurations. Default value None means use sc.hadoopConfig. |
|
0 |
|
Specifies how long the discovering of Spark executors should last. This option has precedence over other options influencing the discovery mechanism. That means that as long as the timeout hasn’t expired, we keep trying to discover new executors. This option might be useful in environments where Spark executors might join the cloud with some delays. |
External backend configuration properties¶
Property name |
Default value |
H2OConf setter (* getter) |
Description |
---|---|---|---|
|
None |
|
Ip address or network of mapper->driver callback interface. Default value means automatic detection. |
|
None |
|
Port of mapper->driver callback interface. Default value means automatic detection. |
|
None |
|
Range portX-portY of mapper->driver callback interface; eg: 50000-55000. |
|
10 |
|
This option is a percentage of external memory option and specifies memory for internal JVM use outside of Java heap. |
|
None |
|
ip:port of a H2O cluster leader node to identify external H2O cluster. |
|
None |
|
Number of H2O nodes to start when |
|
120 |
|
Timeout in seconds for starting H2O external cluster |
|
None |
|
Full path to a file which is used as the notification file for the startup of external H2O cluster. |
|
6G |
|
Amount of memory assigned to each external H2O node |
|
None |
|
Path to the directory on HDFS used for storing temporary files. |
|
manual |
|
If this option is set to |
|
None |
|
Path to H2O driver used during |
|
None |
|
Yarn queue on which external H2O cluster is started. |
|
true |
|
If true, the client will try to kill the cluster and then itself in case some nodes in the cluster report unhealthy status. |
|
None |
|
Kerberos Principal |
|
None |
|
Kerberos Keytab |
|
None |
|
Impersonated Hadoop user |
|
10000 |
|
Timeout for confirmation from worker nodes when stopping the external backend. It is also
possible to pass |
|
hadoop |
|
Name or path to path to a hadoop executable binary which is used to start external H2O backend on YARN. |
|
None |
|
Comma-separated paths to jars that will be placed onto classpath of each H2O node. |
|
SNAPPY |
|
The type of compression used for data transfer between Spark and H2O node.
Possible values are |
|
yarn |
|
The backend on which the external H2O backend will be started in auto start mode.
Possible values are |
|
h2o-service |
|
Name of H2O service required to start H2O on K8s. |
|
h2o-statefulset |
|
Name of H2O stateful set required to start H2O on K8s. |
|
app=h2o |
|
Label used to select node for H2O cluster formation. |
|
8081 |
|
Kubernetes API port. |
|
default |
|
Kubernetes namespace where external H2O is started. |
|
See doc |
|
Docker image containing Sparkling Water external H2O backend. Default value is h2oai/sparkling-water-external-backend:3.32.0.5-1-2.1 |
|
cluster.local |
|
Domain of the Kubernetes cluster. |
|
300 |
|
Timeout in seconds used as a limit for K8s service creation. |
H2OConf getter can be derived from the corresponding setter. All getters are parameter-less. If the type of the property is Boolean, the getter is prefixed with
is
(E.g. setReplEnabled()
-> isReplEnabled()
). Property getters of other types do not have any prefix and start with lowercase
(E.g. setUserName(String)
-> userName
for Scala, userName()
for Python).