本文是Flink1.18.1在CenOS7下的安装和部署的学习笔记,记录了基本的安装步骤及参数配置,给初学者避坑用。
一,安装JDK11
Flink在1.13及其之前的版本,推荐用JDK8。从Flink 1.14开始,官方推荐使用的Java版本是JDK 11,并且从Flink 1.17开始,部分依赖于Flink的第三方库已经弃用了对JDK 8的支持。我们今天计划安装的是1.18,所以要先安装JDK11。
JDK的安装各位应该不是问题了,快速带过吧。所有的JDK安装都是三部曲:
1,下载、解压、安装
sudo rpm -ivh jdk-11-*.rpm
2,环境变量
sudo vi /etc/profile
在文件的末尾添加以下行,将
JAVA_HOME
设置为JDK 11的安装路径(通常rpm安装会自动设置到
/usr/java/jdk-11
)
export JAVA_HOME=/usr/java/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
保存后编译新环境变量,使生效
source /etc/profile
3,验证
java -version
如果成功安装并配置了JDK 11,你应该能看到类似于“openjdk version "11.0.x"”的输出。
二,下载和安装Flink
Flink官网下载地址是https://flink.apache.org/downloads/
下载好
flink-1.18.1-bin-scala_2.12.tgz
文件后,下一步通常是进行解压和配置 Flink 环境。以下是一般的步骤:
1,解压
你可以使用
tar
命令来解压下载的
.tgz
文件。假设你已经将文件下载到了
/opt
目录下,你可以执行以下命令来解压:
cd /opt
tar -zxvf flink-1.18.1-bin-scala_2.12.tgz
解压后,你会得到一个名为
flink-1.18.1
的目录。
2,配置环境变量
为了方便使用 Flink 的命令行工具,你可以将 Flink 的
bin
目录添加到你的
PATH
环境变量中。编辑你的 shell 配置文件(如
.bashrc
或
.bash_profile
),并添加以下行:
export PATH=$PATH:/opt/flink-1.18.1/bin
和jdk一样,修改了环境变量需要重编译。
然后,执行 source ~/.bashrc 或 source ~/.bash_profile 来使配置生效。
- 检查 Flink 是否安装成功
打开一个新的终端窗口,并运行以下命令来检查 Flink 是否正确安装:
flink -v
如果一切正常,你应该能看到 Flink 的版本号。
若提示找不到flink命令什么的,很显然是上一步的环境变量没配置正确。两个注意点,1个是若是root目录下,最好路径写全,比如/root/flink-1.18.1/bin;第2个是文件修改保存后务必要使用source命令重编译下。
三,flink的参数配置
- 配置 Flink 集群
如果你打算在集群模式下运行 Flink(例如,在多个节点上),你需要进行以下配置:
配置 flink-conf.yaml:这个文件包含了 Flink 的主要配置。你可以设置 JVM 参数、内存分配、并行度等。
配置 masters 文件:如果你使用高可用性(HA)模式,这个文件包含了 Flink master(JobManager)的地址列表。
配置 slaves 文件:这个文件包含了所有 TaskManager 节点的地址列表。
配置网络和安全:根据你的网络环境和安全需求,配置 Flink 的网络和安全设置。
- 调整 JVM 参数
在 flink-conf.yaml 文件中,你可以调整 JVM 的堆大小和其他相关参数。例如:
env.java.opts: "-Xms1024m -Xmx1024m"
这将设置 JVM 的初始堆大小为 1024MB,最大堆大小为 1024MB。根据你的集群大小和作业需求,你可能需要调整这些值。
- 配置并行度
并行度决定了 Flink 作业中并行任务的数量。你可以在作业级别或全局级别设置并行度。例如,在提交作业时,你可以使用 -p 参数来设置并行度:
flink run -p 10 my-flink-job.jar
这将在作业中使用 10 个并行任务。
- 高级配置
状态后端和检查点:对于需要状态管理的作业(例如流处理作业),配置状态后端和检查点间隔是非常重要的。
资源管理器:如果你打算使用 YARN、Kubernetes 或 Mesos 作为资源管理器来动态分配资源,你需要配置相应的资源管理器集成。
SSL/TLS:为了增强安全性,你可以配置 Flink 使用 SSL/TLS 进行通信。
四,Flink Web UI
Flink 提供了一个 Web UI,你可以用它来监控作业的状态、性能指标和资源使用情况。
1,启动Flink
由于我们已经做了环境变量的配置,所以直接根目录通过start-cluster.sh即可启动:
[root@localhost ~]# start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host localhost.localdomain.
Starting taskexecutor daemon on host localhost.localdomain.
对应的停止flink的命令也能猜的到:
stop-cluster.sh
2,开放防火墙
Web UI的端口是8081,防火墙默认不开放,需要打开。
firewall-cmd --add-port=8081/tcp --permanent
firewall-cmd --reload
3,修改flink-conf.yaml
在安装目录flink-1.18.1/conf下,有flink的配置文件flink-conf.yaml。针对web ui的端口部分,默认仅限localhost访问,若想远程访问就需要修改:
rest.bind-address: 0.0.0.0
此时我们再次检查下8081端口的权限
[root@localhost ~]# netstat -antp |grep 8081
tcp6 0 0 :::8081
前面三个冒号,说明已经面向所有IP开放8081啦
4,访问8081
当我们访问http://你的ip:8081,就可以发现flink的web ui啦
至此flink的安装和部署完成。下次我们再动手做下第一个flink项目。
版权归原作者 laolitou_1024 所有, 如有侵权,请联系我们删除。