Flink 配置1:Ubuntu 环境下部署 Flink 集群环境

本文详细介绍了在Ubuntu20.04.6系统上,通过本地、Docker和Kubernetes部署Flink1.16.2集群的过程,包括Java环境配置、Flink配置、集群启动步骤和提交任务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flink 部署笔记:

注:操作系统为Ubuntu 20.04.6;Java版本为8;Flink版本为Flink 1.16.2。

1 本地启动配置

1.1 JAVA环境配置

  1. 输入javac可查看安装提示信息。
  2. 使用命令sudo apt install openjdk-8-jdk-headless安装JDK
  3. 配置环境变量。使用sudo vim /etc/profile打开profile文件,按按键i,输入以下内容,依次按按键w、q保存并退出。然后输入命令source /etc/profile使修改生效。
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    

1.2 Flink配置

  1. 进入Flink官网下载安装包,如flink-1.16.2-bin-scala_2.12.tgz。

  2. 解压安装包。进入安装包所在文件夹打开终端,输入命令sudo tar -zxvf flink-1.16.2-bin-scala_2.12.tgz -C /opt/module/,位置可做修改。
    可通过命令chmod -R 777 flink-1.16.2递归修改文件权限。
    若没有文件夹,可使用sudo mkdir /opt/module/创建。解压完毕后,可进入解压后的目录的bin目录中,并可使用以下命令:

    # 启动集群
    bash start-cluster.sh
    # 关闭集群
    bash stop-cluster.sh
    

    若报出下面错误,原因是压缩包在上传的时候没有上传完整,需要重新上传一下。

    gzip: stdin: unexpected end of file
    tar: 归档文件中异常的 EOF
    tar: 归档文件中异常的 EOF
    tar: Error is not recoverable: exiting now
    
  3. 为了方便,可配置环境变量,即使用命令sudo vim /etc/bash.bashrc在/etc/bash.bashrc中写入以下内容。然后输入命令source /etc/bash.bashrc使修改生效。 然后就可以直接使用start-cluster.shstop-cluster.sh来启动或关闭集群。若提示权限不够,可使用sudo su切换为root用户。

    export FLINK_HOME=/opt/module/flink-1.16.2
    export PATH=$FLINK_HOME/bin:$PATH
    
  4. 启动成功后,可访问http://localhost:8081,对Flink集群和任务进行监控管理。

2 集群启动配置

2.1 集群环境配置

  1. 准备好多个虚拟机,可直接用克隆功能。
  2. 可参考 https://blog.youkuaiyun.com/White_Ink_/article/details/139743058 配置集群环境。

2.2 Flink配置

  1. 修改Flink目录下的conf/flink-conf.yaml文件,内容如下,指定了node1作为JobManager 节点。
    # JobManager 节点地址. 
    jobmanager.rpc.address: node1
    
    该文件还有其他配置,部分配置项如下:
    jobmanager.heap.size: 1024m  # JobManager JVM heap 内存大小
    taskmanager.heap.size: 1024m  # TaskManager JVM heap 内存大小
    taskmanager.numberOfTaskSlots: 2  # 每个 TaskManager 提供的任务 slots 数量大小
    taskmanager.memory.preallocate: false  #是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
    parallelism.default: 1  # 程序默认并行计算的个数
    jobmanager.bind-host: 0.0.0.0  # 如果是集群环境,这个必须设置为0.0.0.0。默认情况下,这是 localhost,它将阻止JobManager 与它所运行的机器/容器之外进行通信。
    jobmanager.web.port: 8081  # JobManager的Web界面的端口(默认:8081)
    rest.bind-address: 0.0.0.0  # 0.0.0.0为允许其他设备访问Web UI
    
    参考配置:
    jobmanager.rpc.address: node1
    jobmanager.rpc.port: 6123
    jobmanager.bind-host: 0.0.0.0
    jobmanager.memory.process.size: 1600m
    
    taskmanager.bind-host: 0.0.0.0
    taskmanager.host: localhost
    taskmanager.memory.process.size: 1728m
    taskmanager.numberOfTaskSlots: 2
    
    parallelism.default: 1
    
    jobmanager.execution.failover-strategy: region
    
    rest.address: 0.0.0.0
    rest.bind-address: 0.0.0.0
    
  2. 修改conf/workers文件,内容如下,指定了node2和node3为 TaskManager 节点。
node2
node3
  1. 配置修改完毕后,将 Flink 安装目录发给其他节点服务器,命令如scp -r /opt/module/flink-1.16.2 root@node2:/opt/module/
  2. 在node1下,执行bin/start-cluster.sh文件即可启动集群。得到以下信息。
Starting cluster.
Starting standalonesession daemon on host node1.
Starting taskexecutor daemon on host node2.
Starting taskexecutor daemon on host node3.
  1. 启动成功后,可访问http://localhost:8081,对Flink集群和任务进行监控管理。

3 提交任务

  1. 将编写的代码打成 jar 包。
    可以引入插件 maven-assembly-plugin 进行打包。 在maven项目的 pom.xml 文件中添加打包插件的配置,具体如下。
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    然后可以使用 IDEA 的 Maven 工具执行 package 命令进行打包。
  2. web UI界面:在右侧导航栏点击“Submit New Job”,然后点击按钮“+ Add New”,选择要上传运行的 jar 包。点击该 JAR 包,出现任务配置页面,进行相应配置。点击按钮“Submit”。
    命令行界面:使用命令示例:flink run -m node1:8081 -c org.example.WordCount /home/zpeng/My/FlinkStudy-1.0-SNAPSHOT-jar-with-dependencies.jar
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值