Flink Standalone集群模式安装部署全攻略

一、引言

Flink作为一款强大的分布式流处理和批处理框架,在大数据领域有着广泛的应用。本文将详细介绍Flink Standalone集群模式的安装部署过程,帮助大家快速搭建起开发测试环境。

二、安装前准备

首先,确保已经安装好了Hadoop环境(因为后续配置中涉及到与Hadoop的集成)。

三、安装步骤

(一)环境准备

  1. 退出conda的base环境(如果存在):

    复制代码
    conda deactivate
  2. 下载Flink安装包:
    下载链接为:https://archive.apache.org/dist/flink/flink-1.13.1/flink-1.13.1-bin-scala_2.11.tgz

(二)安装包处理

  1. 上传Flink安装包到服务器后,进行解压操作:

    复制代码
    [root@hadoop11 modules]# tar -zxf flink-1.13.6-bin-scala_2.11.tgz -C /opt/installs/
    [root@hadoop11 installs]# mv flink-1.13.6/ flink
  2. 配置环境变量:
    编辑 /etc/profile 文件,添加以下内容:

    复制代码
    export FLINK_HOME=/opt/installs/flink
    export PATH=$PATH:$FLINK_HOME/bin
    export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop

    记得执行 source /etc/profile 使环境变量生效。

(三)配置文件修改

  1. 修改 /opt/installs/flink/conf/flink-conf.yaml 文件:

    • jobmanager.rpc.address: bigdata01:指定JobManager的RPC地址。
    • taskmanager.numberOfTaskSlots: 2:设置每个TaskManager的任务槽数量。
    • web.submit.enable: true:开启Web提交功能。
    • 配置历史服务器相关参数(如果HDFS是高可用,则需要先复制core-site.xmlhdfs-site.xmlflinkconf目录下):
      • jobmanager.archive.fs.dir: hdfs://bigdata01:9820/flink/completed-jobs/:JobManager存档目录。
      • historyserver.web.address: bigdata01:历史服务器Web地址。
      • historyserver.web.port: 8082:历史服务器Web端口。
      • historyserver.archive.fs.dir: hdfs://bigdata01:9820/flink/completed-jobs/:历史服务器存档目录。
  2. 修改 /opt/installs/flink/conf/masters 文件:

    复制代码
    bigdata01:8081

    这里指定了JobManager的地址和端口。

  3. 修改 /opt/installs/flink/conf/workers 文件:

    复制代码
    bigdata01
    bigdata02
    bigdata03

    列出了集群中的TaskManager节点。

(四)上传相关jar包

将资料下的flink-shaded-hadoop-2-uber-2.7.5-10.0.jar放到flinklib目录下,然后使用xsync.sh脚本进行分发:

复制代码
xsync.sh /opt/installs/flink
xsync.sh /etc/profile

四、启动服务

  1. 启动HDFS:

    复制代码
    start-dfs.sh
  2. 启动Flink集群:

    复制代码
    start-cluster.sh
  3. 启动历史服务器:

    复制代码
    historyserver.sh start

    如果历史服务器无法启动,很可能是没有上传关于Hadoop的jar包到lib下。

五、WebUI观察

  • http://bigdata01:8081:Flink集群管理界面,当前有效,重启后里面跑的内容就消失了,能够访问是因为集群处于启动状态。
  • http://bigdata01:8082:Flink历史服务器管理界面,及时服务重启,运行过的服务都还在,能够访问是因为历史服务启动着。

两者的区别在于,当服务都停止后再重启,8081上已经完成的任务中是空的,而8082上的历史任务都还在,原因是8082读取了HDFS上的一些数据,而8081没有。不过从Web提供的功能来看,8081提供的功能还是比8082要丰富得多。

六、提交官方示例

可以使用以下命令提交官方示例WordCount.jar

复制代码
flink run  /opt/installs/flink/examples/batch/WordCount.jar

或者指定输入输出路径:

复制代码
flink run  /opt/installs/flink/examples/batch/WordCount.jar --input 输入数据路径 --output 输出数据路径

例如:

复制代码
flink run  /opt/installs/flink/examples/batch/WordCount.jar --input /home/wc.txt --output /home/result

运行该案例时,会出现有时候运行成功,有时候运行失败的问题,错误信息如下:

复制代码
Caused by: java.io.FileNotFoundException: /home/wc.txt (没有那个文件或目录)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at org.apache.flink.core.fs.local.LocalDataInputStream.<init>(LocalDataInputStream.java:50)
        at org.apache.flink.core.fs.local.LocalFileSystem.open(LocalFileSystem.java:134)
        at org.apache.flink.api.common.io.FileInputFormat$InputSplitOpenThread.run(FileInputFormat.java:1053)

原因是:TaskManager有三台,而数据只在本地存放一份,所以需要将数据分发给bigdata02bigdata03,可以使用xsync.sh脚本进行分发:

复制代码
xsync.sh /home/wc.txt

通过以上步骤,我们就完成了Flink Standalone集群模式的安装部署,并能够进行简单的任务提交和运行测试。在实际应用中,还可以根据具体需求进一步深入探索Flink的更多功能和配置优化。

相关推荐
ONLYOFFICE5 小时前
【技术教程】如何将文档编辑器集成至基于Java的Web应用程序
java·编辑器·onlyoffice
保卫大狮兄5 小时前
连锁零售企业如何能更有效地管理门店考勤?
面试·职场和发展
健康有益科技5 小时前
AI驱动健康升级:新零售企业从“卖产品”到“卖健康”的转型路径
大数据·人工智能·健康医疗·零售
涛思数据(TDengine)5 小时前
新客户 | TDengine 时序数据库赋能开源鸿蒙物联展区实时监控与展示
大数据·时序数据库·tdengine
lbwxxc5 小时前
手写 Tomcat
java·tomcat
liulilittle5 小时前
Unix/Linux 平台通过 IP 地址获取接口名的 C++ 实现
linux·开发语言·c++·tcp/ip·unix·编程语言
CHEN5_025 小时前
【CouponHub项目开发】使用RocketMQ5.x实现延时修改优惠券状态,并通过使用模板方法模式重构消息队列发送功能
java·重构·模板方法模式·项目
杨杨杨大侠5 小时前
实战案例:商品详情页数据聚合服务的技术实现
java·spring·github
杨杨杨大侠5 小时前
实战案例:保险理赔线上审核系统的技术实现
java·spring·github
计算机毕设定制辅导-无忧学长5 小时前
MQTT 与 Java 框架集成:Spring Boot 实战(一)
java·网络·spring boot