The Jet engine is a batch and stream processing system that allows Hazelcast members to do both stateless and stateful computations over large amounts of data with consistent low latency.
The Jet engine processes data in pipelines. Pipelines allow you to take data stored in one location (source), apply processing, and send it to another location (sink). If you only want to process data without moving it, you can use the same location for source and sink.
Pipelines are executed as jobs. Jobs are run in parallel across all Hazelcast cluster members for maximum speed.
For more information, see Data pipelines.
Configure the Jet engine
The Jet engine is enabled by default and has the following configuration options. For more detailed information, see the API reference.
| Option | Default | Description | ||
|---|---|---|---|---|
|
true |
Set to |
||
|
false |
Set to |
||
|
The number of threads Jet creates in its cooperative multithreading pool. |
|||
|
100 |
The duration of the interval between flow control packets. |
||
|
1 |
The number of synchronous backups to configure on the IMap, which Jet needs internally to store job metadata and snapshots. |
||
|
10000 |
The delay after which the auto-scaled jobs restart if a new member joins the cluster. |
||
|
false |
Whether the lossless cluster restart feature is enabled.
|
||
|
The maximum number of records that can be accumulated by any single processor instance. |
|||
|
The capacity of processor-to-processor concurrent queues. |
|||
|
The maximum packet size in bytes. |
|||
|
The scaling factor used by the adaptive receive window sizing function. |
|||
|
JAR files from an external bucket are made accessible to cluster members when the following parameter values are supplied:
|
|||
|
List of names of ConfigMaps. Files in each ConfigMap will be downloaded. |
|||
|
List of URLs from where files will be downloaded. |
Example configuration
The following example creates a Hazelcast cluster and sets some Jet configuration.
apiVersion: hazelcast.com/v1alpha1
kind: Hazelcast
metadata:
name: hazelcast
spec:
clusterSize: 3
repository: 'docker.io/hazelcast/hazelcast-enterprise'
version: '5.6.0-slim'
licenseKeySecretName: hazelcast-license-key
jet:
enabled: true
resourceUploadEnabled: true
instance:
cooperativeThreadCount: 4
flowControlPeriodMillis: 100
backupCount: 1
scaleUpDelayMillis: 10000
losslessRestartEnabled: false
maxProcessorAccumulatedRecords: 1000000000
edgeDefaults:
queueSize: 1024
packetSizeLimit: 16384
receiveWindowMultiplier: 3
Configuration properties
You can also set configuration using Java system properties. See Set arbitrary JVM arguments for more information.
apiVersion: hazelcast.com/v1alpha1
kind: Hazelcast
metadata:
name: hazelcast
spec:
clusterSize: 3
repository: 'docker.io/hazelcast/hazelcast-enterprise'
version: '5.6.0-slim'
licenseKeySecretName: hazelcast-license-key
jet:
enabled: true
jvm:
args:
- "-Dhazelcast.jet.idle.cooperative.min.microseconds=50"
Next steps
Once you have configured the Jet engine, you can submit Jet jobs.
For a worked example, see the Run a data pipeline using Jet tutorial.