第二课 Flink 安装部署、环境配置及运行应用程序(2)

上接第二课 Flink 安装部署、环境配置及运行应用程序(1)

视频地址 

【Apache Flink 入门教程】3. Flink 安装部署、环境配置及运行应用程序_哔哩哔哩_bilibiliApache Flink China 社区出品,Apache Flink 教程第二弹《Flink 安装部署、环境配置及运行应用程序》讲师:沙晟阳(阿里巴巴高级开发工程师), 视频播放量 18981、弹幕量 302、点赞数 114、投硬币枚数 43、收藏人数 218、转发人数 21, 视频作者 Apache_Flink, 作者简介 官方微信号:Ververica2019微信公众号:Apache Flink,相关视频:【尚硅谷】大数据Apache Doris教程(基于实际开发环境安装部署配置),『Git』知道这些就够了,尚硅谷Jenkins视频教程(从安装部署到环境搭建),大数据从入门到精通 完整版共1000节(上部),大数据自学精品教程Flink从入门到精通【大数据自学系列教程】,P6.Linux项目实训-搭建LAMP服务器(Apache安装、配置与测试),黑马程序员Spark全套视频教程,4天spark3.2快速入门到精通,全网首套基于Python语言的spark教程,Flink 1.13 从安装部署到项目实战【大数据自学系列——课堂实录】,环境搭建与配置 | Apache配置安装运行与解决端口占用问题,kafka和flink的入门到精通https://www.bilibili.com/video/BV1wb41177T7

这些内容基本是按照文档来走的,按照文档进行安装和运行,基本不会有什么错,一些问题自己解决一下就好了,然后总结下文档中的内容并记录中间出现的一些问题。

我下载的源码是1.15.1视频中有些出入,使用的运行环境是虚拟机Ubuntu 系统

多机部署 Flink standalone 集群

一、准备环境

  • 三台虚拟机(可以在一台配置环境变量配置好直接克隆就行了)(我是直接使用我以前学Hadoop时使用的环境,分别为hadoop130,hadoop131,hadoop132)
  • 选一台主机器与其他虚拟机打通ssh(参考这个)
  • 如果使用hdfs 需要配置HADOOP_CONF_DIR 环境变量(这需学习Hadoop相关知识)
  • 一个同步文件的脚本( 参考这个刚写的 在打通ssh的情况下更好

二、计划机器

一个JobManager在hadoop130上,每台机器上加一个TaskManager

三、修改配置

修改conf/masters

hadoop130:8081

修改conf/workers

hadoop130
hadoop131
hadoop132

修改 conf/flink-conf.yaml

jobmanager.rpc.address: hadoop130

四、同步配置

把这些配置文件同步到其他机器上去,有同步脚本会更快。

五、启动

启动方式没有变

 ./bin/start-cluster.sh 

启动以后访问一下控制台

第二课 Flink 安装部署、环境配置及运行应用程序(2)_第1张图片

六、提交word count作业

  • 运行默认的WordCount
./bin/flink run examples/streaming/WordCount.jar

结果会直接在out日志中输出

第二课 Flink 安装部署、环境配置及运行应用程序(2)_第2张图片

  • 将数据源和输出设置为hdfs上文件

我在我已有的HDFS上有一个文件(自己没有可以上传一个)

./bin/flink run examples/streaming/WordCount.jar --input hdfs:///wcinput/word.txt --output hdfs:///wcinput/output

结果也输出到了一个文件里去了,结果的位置只需要各一个文件夹名称就可以

第二课 Flink 安装部署、环境配置及运行应用程序(2)_第3张图片

并发演示那个我也失败了 

到这里单JobManager 启动也结束,但是也不是那么顺利中间也是遇到了些问题

1、对于使用hdfs 时需要部署HDFS同时 还需要使用flink 支持Hadoop的jar。要不然会报识别不了HDFS的协议的错误

2、修改配置以后需要重启flink

standalone 模式的 HighAvailability(HA)部署和配置

通过上一节可以部署一个拥有一个JobManager和多个TaskManager节点的集群,但是这样会有一个缺点,就是JobManager是十分重要的,一旦这个JobManager宕掉整个集群就不能再用,而TaskManager宕掉只需要在其他TaskManager 上使用checkpoint中的信息来进行恢复就可以了。所以要搭建一个高可用的集群,就要先要考虑JobManager的高可用,flink的方案就是借助zookeeper实现JobManager的高可用,

一、搭建一个zookeeper集群

如果原来有的话可以使用原来的就行,没有的话flinkzookeeper也内置了zk的部署脚本,需要设置配置文件中的zoo.cfg按照文档中设置就可以

clientPort=2181
server.1=z05f06378.sqa.zth.tbsite.net:2888:3888
server.2=z05c19426.sqa.zth.tbsite.net:2888:3888
server.3=z05f10219.sqa.zth.tbsite.net:2888:3888

然后启动就行了

./bin/start-zookeeper-quorum.sh

二、修改配置

conf/master(改为多个JobManager)

hadoop130:8081
hadoop131:8081
hadoop132:8081

conf/worker(可以维持不变因为本来就是多个)

conf/flink-conf.yaml(添加高可用的相关配置)
high-availability: zookeeper
# 配置 zookeeper quorum(hostname 和端口需要依据对应 zk 的实际配置)
high-availability.zookeeper.quorum: hadoop130:2181,hadoop131:2181,hadoop132:2181
# (可选)设置 zookeeper 的 root 目录
high-availability.zookeeper.path.root: /test_dir/test_standalone2_root
# (可选)相当于是这个 standalone 集群中创建的 zk node 的 namespace
high-availability.cluster-id: /test_dir/test_standalone2
# JobManager 的 meta 信息放在 dfs,在 zk 上主要会保存一个指向 dfs 路径的指针
high-availability.storageDir: hdfs:///test_dir/recovery2/

三、重启集群

./bin/start-zookeeper-quorum.sh 
./bin/stop-cluster.sh
./bin/start-cluster.sh

四、效果查看

这里我操作效果和文档中有不一致的地方,也是这几天我疑惑的地方

我打开所有的JobManager 地址都可以访问,没有跳转到leader上去,我一度怀疑是配置有问题zookeeper有问题引起了脑裂?Job manager 没有连接上zookeeper,这几天尝试了多次结果还是不能自动跳转,最后想到了看taskManager 会不会自动寻找leader JobManager

我先正常启动查看taskManager的日志如下:

 

 

目前看来全部是正常连接到

然后杀掉了目前的leader hadoop131的JobManager

立马所有的taskManager就报警告但是全部转到连接130了

 

到这里我想我目前的问题仅仅就只是页面不能自动跳转leader,同时我也测试了在flower节点的Job Manager上传任务,查看最终还是在Leader节点上运行的 ,这是我才放下心来。

还有一个不一样的地方就是 

这个启动命令并不能单独启动一个jobmanager

./bin/jobmanager.sh start hadoop131

 使用 yarn 模式跑 flink job

前提需要一个YARN集群(看看自己以前搭建的YARN集群和可不可以用)

查看命令参数:
./bin/yarn-session.sh -h
创建一个 YARN 模式的 flink 集群

./bin/yarn-session.sh -n 4 -jm 1024m -tm 4096m
提交一个 flink job 到 flink 集群:
./bin/flink run examples/streaming/WordCount.jar --input hdfs:///wcinput/word.txt --output hdfs:///wcinput/output1

为了测试是否启用YARN我在创建一个 YARN 模式的 flink 集群之前运行了一次,之后运行了一次 看看区别

可以看出已经使用了YARN

有一些问题还是不懂 特别是和YRAN相关的,但是秉承的先动手的原则还是动手做完了这些操作,虽然路不那么顺,但是开始要走起来才行。

 

你可能感兴趣的:(Flink,flink,大数据)