You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: website/docs/install-deploy/deploying-distributed-cluster.md
+66-39Lines changed: 66 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,33 +30,37 @@ This page provides instructions on how to deploy a *distributed cluster* for Flu
30
30
31
31
Fluss runs on all *UNIX-like environments*, e.g. **Linux**, **Mac OS X**.
32
32
To build a distributed cluster, you need to have at least two nodes.
33
-
This doc provides a simple example of how to deploy a distributed cluster on three nodes.
33
+
This doc provides a simple example of how to deploy a distributed cluster on four nodes.
34
34
35
35
### Software Requirements
36
36
37
-
Before you start to set up the system, make sure you have the following software installed **on each node**:
38
-
-**Java 17** or higher (Java 8 and Java 11 are not recommended)
39
-
-**Zookeeper 3.6.0** or higher (It is not recommended to use zookeeper versions below 3.6.0)
37
+
Before you start to set up the system, make sure you have installed **Java 17** or higher **on each node** in your cluster.
38
+
Java 8 and Java 11 are not recommended.
40
39
41
-
If your cluster does not fulfill these software requirements you will need to install/upgrade it.
40
+
Additionally, you need a running **ZooKeeper** cluster with version 3.6.0 or higher.
41
+
We do not recommend to use ZooKeeper versions below 3.6.0.
42
+
For further information how to deploy a distributed ZooKeeper cluster, see [Running Replicated ZooKeeper](https://zookeeper.apache.org/doc/r3.6.0/zookeeperStarted.html#sc_RunningReplicatedZooKeeper).
43
+
44
+
If your cluster does not fulfill these software requirements, you will need to install/upgrade them.
42
45
43
46
### `JAVA_HOME` Configuration
44
47
45
48
Flink requires the `JAVA_HOME` environment variable to be set on all nodes and point to the directory of your Java installation.
46
49
47
50
## Fluss Setup
48
51
49
-
This part will describe how to set up Fluss cluster consisting of one coordinator server and multiple tablet servers
50
-
across three machines. Suppose you have three nodes have ip address:
51
-
- Node1: `192.168.10.1`
52
-
- Node2: `192.168.10.2`
53
-
- Node3: `192.168.10.3`
52
+
This part will describe how to set up a Fluss cluster consisting of one CoordinatorServer and multiple TabletServers
53
+
across four machines. Suppose you have four nodes in a `192.168.10/24` subnet with the following IP address assignment:
54
+
- Node0: `192.168.10.100`
55
+
- Node1: `192.168.10.101`
56
+
- Node2: `192.168.10.102`
57
+
- Node3: `192.168.10.103`
54
58
55
-
Node1 will deploy the CoordinatorServer and one TabletServer, Node2 and Node3 will deploy one TabletServer.
59
+
Node0 will deploy a CoordinatorServer instance. Node1, Node2 and Node3 will deploy one TabletServer instance, respectively.
56
60
57
61
### Preparation
58
62
59
-
1. Make sure ZooKeeper has been deployed, and assuming the ZooKeeper address is`192.168.10.99:2181`. see [Running zookeeper cluster](https://zookeeper.apache.org/doc/r3.6.0/zookeeperStarted.html#sc_RunningReplicatedZooKeeper) to deploy a distributed ZooKeeper.
63
+
1. Make sure ZooKeeper has been deployed. We assume that ZooKeeper listens on`192.168.10.199:2181`.
60
64
61
65
2. Download Fluss
62
66
@@ -70,62 +74,85 @@ cd fluss-$FLUSS_VERSION$/
70
74
71
75
### Configuring Fluss
72
76
73
-
After having extracted the archived files, you need to configure Fluss for the cluster by editing `conf/server.yaml`
77
+
After having extracted the archived files, you need to configure Fluss for a distributed deployment.
78
+
We will use the _default config file_ (`conf/server.yaml`) to configure Fluss.
79
+
Adapt the `server.yaml` on each node as follows.
80
+
81
+
**Node0**
74
82
75
-
For **Node1**, the config is as follows:
76
-
```yaml
77
-
coordinator.host: 192.168.10.1
78
-
coordinator.port: 9123
79
-
zookeeper.address: 192.168.10.99:2181
83
+
```yaml title="server.yaml"
84
+
# coordinator server
85
+
bind.listeners: FLUSS://192.168.10.100:9123
86
+
87
+
zookeeper.address: 192.168.10.199:2181
80
88
zookeeper.path.root: /fluss
81
89
82
-
tablet-server.host: 192.168.10.1
83
-
tablet-server.id: 1
90
+
remote.data.dir: /tmp/fluss-remote-data
84
91
```
85
92
86
-
For **Node2**, the config is as follows:
87
-
```yaml
88
-
zookeeper.address: 192.168.10.99:2181
93
+
**Node1**
94
+
95
+
```yaml title="server.yaml"
96
+
# tablet server
97
+
bind.listeners: FLUSS://192.168.10.101:9123 # alternatively, setting the port to 0 assigns a random port
98
+
tablet-server.id: 1
99
+
100
+
zookeeper.address: 192.168.10.199:2181
89
101
zookeeper.path.root: /fluss
90
102
91
-
tablet-server.host: 192.168.10.2
92
-
tablet-server.id: 2
103
+
remote.data.dir: /tmp/fluss-remote-data
93
104
```
94
105
95
-
For **Node3**, the config is as follows:
96
-
```yaml
97
-
zookeeper.address: 192.168.10.99:2181
106
+
**Node2**
107
+
108
+
```yaml title="server.yaml"
109
+
# tablet server
110
+
bind.listeners: FLUSS://192.168.10.102:9123 # alternatively, setting the port to 0 assigns a random port
111
+
tablet-server.id: 2
112
+
113
+
zookeeper.address: 192.168.10.199:2181
98
114
zookeeper.path.root: /fluss
99
115
100
-
tablet-server.host: 192.168.10.3
116
+
remote.data.dir: /tmp/fluss-remote-data
117
+
```
118
+
119
+
**Node3**
120
+
```yaml title="server.yaml"
121
+
# tablet server
122
+
bind.listeners: FLUSS://192.168.10.103:9123 # alternatively, setting the port to 0 assigns a random port
101
123
tablet-server.id: 3
124
+
125
+
zookeeper.address: 192.168.10.199:2181
126
+
zookeeper.path.root: /fluss
127
+
128
+
remote.data.dir: /tmp/fluss-remote-data
102
129
```
103
130
104
131
:::note
105
-
- `tablet-server.id` is the unique id of the TabletServer, if you have multiple TabletServers, you should set different id for each TabletServer.
106
-
- In this example, we only set the properties that must be configured, and for some other properties, you can refer to [Configuration](maintenance/configuration.md) for more details.
132
+
- `tablet-server.id` is the unique id of the TabletServer. If you have multiple TabletServers, you should set a different id for each TabletServer.
133
+
- In this example, we only set the mandatory properties. For additional properties, you can refer to [Configuration](maintenance/configuration.md) for more details.
107
134
:::
108
135
109
136
### Starting Fluss
110
137
111
-
To start Fluss, you should first to start a CoordinatorServer in **node1** and
112
-
then start each TabletServer in **node1**, **node2**, **node3**. The command is as follows:
138
+
To deploy a distributed Fluss cluster, you should first start a CoordinatorServer instance on **Node0**.
139
+
Then, start a TabletServer instance on **Node1**, **Node2**, and **Node3**, respectively.
113
140
114
-
#### Starting CoordinatorServer
141
+
**CoordinatorServer**
115
142
116
-
In **node1**, starting a CoordinatorServer:
143
+
On **Node0**, start a CoordinatorServer as follows.
117
144
```shell
118
145
./bin/coordinator-server.sh start
119
146
```
120
147
121
-
#### Starting TabletServer
148
+
**TabletServer**
122
149
123
-
In **node1**, **node2**, **node3**, starting a TabletServer is as follows:
150
+
On **Node1**, **Node2** and **Node3**, start a TabletServer as follows.
124
151
```shell
125
152
./bin/tablet-server.sh start
126
153
```
127
154
128
-
After that, the Fluss distributed cluster is started.
155
+
After that, you have successfully deployed a distributed Fluss cluster.
129
156
130
157
## Interacting with Fluss
131
158
@@ -148,7 +175,7 @@ In Flink SQL client, a catalog is created and named by executing the following q
0 commit comments