# Installation Process Apache Flink 1.18.1

# Installation Process Apache Flink 1.18.1

# Step 1 — Install Java 17 (Required for Flink 1.x)

`sudo dnf install -y java-17-openjdk java-17-openjdk-devel`

# Download Apache Flink 1.18.1 (Correct link)

```
cd /opt 
sudo wget https://dlcdn.apache.org/flink/flink-1.18.1/flink-1.18.1-bin-scala_1.18.1.tgz

```

# Extract Flink and move flink folder

```
sudo tar -xvf flink-1.18.1-bin-scala_1.18.1.tgz
sudo mv flink-1.18.1 flink

```

# Set Environment Variables

```
echo 'export FLINK_HOME=/opt/flink' >> ~/.bashrc
echo 'export PATH=$PATH:$FLINK_HOME/bin' >> ~/.bashrc
source ~/.bashrc

echo $FLINK_HOME


```

# Start Flink Cluster

```
$FLINK_HOME/bin/start-cluster.sh

```

# If CentOS firewall is active:

```
sudo firewall-cmd --add-port=8081/tcp --permanent
sudo firewall-cmd --reload

```

# Check that Flink listens on 0.0.0.0

```
sudo nano flink/conf/config.yaml

Inside jobmanager tag bind-host will be 0.0.0.0

```

# Restart Flink:

```
/opt/flink/bin/stop-cluster.sh
/opt/flink/bin/start-cluster.sh


```

# Run the flink as a system deamon

# Create a Flink system user

```
sudo useradd -r -m -d /opt/flink -s /bin/bash flink
sudo chown -R flink:flink /opt/flink

```

# Create a systemd service file

Create the file:

```
sudo nano /etc/systemd/system/flink.service

```

Paste this service configuration:

```
[Unit]
Description=Apache Flink Cluster
After=network.target

[Service]
Type=forking
User=flink
Group=flink

# Modify if your Flink is in a different directory
Environment="FLINK_HOME=/opt/flink"
WorkingDirectory=/opt/flink

ExecStart=/opt/flink/bin/start-cluster.sh
ExecStop=/opt/flink/bin/stop-cluster.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target


```

Reload systemd daemon

```
sudo systemctl daemon-reload


```

Enable Flink at boot

```
sudo systemctl enable flink


```

Start Flink

```
sudo systemctl start flink


```

Check Flink status

```
sudo systemctl status flink


```

Verify Flink Web UI

```
http://192.168.1.227:8081


```

Open firewall

```
sudo firewall-cmd --add-port=8081/tcp --permanent
sudo firewall-cmd --reload


```