首页 > 编程知识 正文

flink 安装,docker分布式部署

时间:2023-05-05 20:17:32 阅读:152247 作者:2308

Flink安装部署目录Flink安装部署1、开发模式2、本地群集模式2.1本地群集模式配置2.1在本地群集模式下运行无边界WordCount、 标准模式3.1标准模式配置3.2标准模式执行无边界流work count 3.3标准高可用性(HA )四、 Yarn模式4.1Yarn模式配置4.2Yarn运行无界流WordCount4.3Flink on Yarn三种排列模式4.4 Per-Job-Cluster模式运行无界流WordCount4.5 Session-Cluster模式ppllint4.6模式执行无界流WordCount4.7 Yarn模式高可用性光纤、Scala REPL六、K8S Mesos模式

一.开发模式

如何在idea上运行Flink程序,请参阅开发模式

二.本地群集模式链接中的本地群集模式主要用于测试, 学习

2.1本地群集模式配置本地群集模式基本上属于零配置

Flink安装包flink-1.12.0-将陶醉密钥-scala_2.11.tgz上传到Hadoop 162 tar-zxvf flink-1.12.0 -陶醉密钥- Scala 复制module CP-RF link-1.12.0 flink-local2. 2并以本地群集模式在无界WordCount包idea上运行的APP应用程序将延迟独立的jar包上传到opt通过flink-local启动本地集群陶醉钥匙/start-cluster.shHadoop162安装启动netcat nc -lk 9999注意:

sudoyuminstall-ync http://www.Sina.com /提交Flink应用陶醉之钥/flink run-m Hadoop 16233608081-ccom.flink.Java.chapter _ 2

http://hadoop162:8081

也可以在日志中确认执行结果

catf link-atguigu-task executor-0-Hadoop 162.out

也可以在WEB UI中提交APP应用程序

三.标准模式标准模式也称为独立集群模式。

3.1标准模式配置复制flink -标准CP-RF link-1.12.0标准更改配置文件: flink-conf.yamljobmanager 将flink-Standalone分发到其他节点3.2 standalone模式,并运行无边界WorkCount以启动standalone群集,并在命令行上执行flink APP flink run-m Hadoop 16233608081-ccom.atguigu.flink.Java.chapter _2. flin k03 _ WC _ unbounded stream./flink-prep 它还支持Web UI界面提交flink APP应用程序3.3标准高可用性(HA ),以便在主节点出现故障时始终具有一个主作业管理器和多个备用作业管理器主作业管理器实例之间没有明显的区别。 每个作业管理器用作主备份节点。

配置文件: link-conf.YAML high-avail ability : zookeeper high-avail ability.storage dir 3360 HDFS 3360//Hadoop 162:8000 ha high-avail ability.zookeeper.quorum :2181、hadoop163:2181、hadoop163:2181和hadoop163:2181

ster-id: /cluster 修改配置文件: masters hadoop162:8081hadoop163:8081 分发修改的后配置文件到其他节点在/etc/profile.d/my.sh中配置环境变量 export HADOOP_CLASSPATH=`hadoop classpath`

注意:

需要提前保证HAOOP_HOME环境变量配置成功分发到其他节点 首先启动dfs集群和zookeeper集群启动standalone HA集群 陶醉的钥匙/start-cluster.sh 可以分别访问 http://hadoop162:8081http://hadoop163:8081 在zkCli.sh中查看谁是leader get /flink-standalone/cluster/leader/rest_server_lock


杀死hadoop162上的Jobmanager, 再看leader

注意: 不管是不是leader从WEB UI上看不到区别, 并且都可以与之提交应用.

四、Yarn模式

独立部署(Standalone)模式由Flink自身提供计算资源,无需其他框架提供资源,这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Flink主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成更靠谱,所以接下来我们来学习在强大的Yarn环境中Flink是如何使用的。(其实是因为在国内工作中,Yarn使用的非常多)

把Flink应用提交给Yarn的ResourceManager, Yarn的ResourceManager会申请容器从Yarn的NodeManager上面. Flink会创建JobManager和TaskManager在这些容器上.Flink会根据运行在JobManger上的job的需要的slot的数量动态的分配TaskManager资源

4.1Yarn模式配置 复制flink-yarn Cpstop -r flink-1.11.2 flink-yarn 配置环境变量HADOOP_CLASSPATH, 如果前面已经配置可以忽略.
在/etc/profile.d/my.sh中配置 export HADOOP_CLASSPATH=`hadoop classpath` 4.2Yarn运行无界流WordCount 启动hadoop集群(hdfs, yarn)运行无界流 陶醉的钥匙/flink run -t yarn-per-job -c com.atguigu.flink.java.chapter_2.Flink03_WC_UnBoundedStream ./flink-prepare-1.0-SNAPSHOT.jar 在yarn的ResourceManager界面查看执行情况

4.3Flink on Yarn的3种部署模式

Flink提供了yarn上运行的3模式,分别为Application Mode, Session-Cluster和Per-Job-Cluster模式。

Session-Clusterw

Session-Cluster模式需要先启动Flink集群,向Yarn申请资源, 资源申请到以后,永远保持不变。以后提交任务都向这里提交。这个Flink集群会常驻在yarn集群中,除非手工停止

在向Flink集群提交Job的时候, 如果资源被用完了,则新的Job不能正常提交.

缺点: 如果提交的作业中有长时间执行的大作业, 占用了该Flink集群的所有资源, 则后续无法提交新的job.

所以, Session-Cluster适合那些需要频繁提交的多个小Job, 并且执行时间都不长的Job.

Per-Job-Cluster

一个Job会对应一个Flink集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接受资源申请;**适合规模大长时间运行的作业**。

每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。

Application Mode

Application Mode会在Yarn上启动集群, 应用jar包的main函数(用户类的main函数)将会在JobManager上执行. 只要应用程序执行结束, Flink集群会马上被关闭. 也可以手动停止集群.

与Per-Job-Cluster的区别: 就是Application Mode下, 用户的main函数是在集群中执行的

官方建议:

出于生产的需求, 我们建议使用Per-job or Application Mode,因为他们给应用提供了更好的隔离!

4.4 Per-Job-Cluster模式执行无界流WordCount 陶醉的钥匙/flink run -d -t yarn-per-job -c com.flink.java.chapter_2.Flink03_WC_UnBoundedStream ./flink-prepare-1.0-SNAPSHOT.jar 4.5 Session-Cluster模式执行无界流WordCount 启动一个Flink-Session 陶醉的钥匙/yarn-session.sh -d 在Session上运行Job 陶醉的钥匙/flink run -c com.atguigu.flink.java.chapter_2.Flink03_WC_UnBoundedStream ./flink-prepare-1.0-SNAPSHOT.jar

会自动找到你的yarn-session启动的Flink集群.也可以手动指定你的yarn-session集群:

陶醉的钥匙/flink run -t yarn-session -Dyarn.application.id=application_XXXX_YY ./flink-prepare-1.0-SNAPSHOT.jar

注意: application_XXXX_YY 指的是在yarn上启动的yarn应用

4.6 Application Mode模式执行无界流WordCount 陶醉的钥匙/flink run-application -t yarn-application -c com.atguigu.flink.java.chapter_2.Flink03_WC_UnBoundedStream ./flink-prepare-1.0-SNAPSHOT.jar 4.7 Yarn模式高可用

Yarn模式的高可用和Standalone模式的高可用原理不一样.

Standalone模式中, 同时启动多个Jobmanager, 一个为leader其他为standby, 当leader挂了, 其他的才会有一个成为leader.

yarn的高可用是同时只启动一个Jobmanager, 当这个Jobmanager挂了之后, yarn会再次启动一个, 其实是利用的yarn的重试次数来实现的高可用.

在yarn-site.xml中配置 <property> <name>yarn.resourcemanager.am.max-attempts</name> <value>4</value> <description> The maximum number of application master execution attempts. </description></property>

注意: 配置完不要忘记分发, 和重启yarn

在flink-conf.yaml中配置 yarn.application-attempts: 3high-availability: zookeeperhigh-availability.storageDir: hdfs://hadoop162:8020/flink/yarn/hahigh-availability.zookeeper.quorum: hadoop162:2181,hadoop163:2181,hadoop164:2181high-availability.zookeeper.path.root: /flink-yarn 启动yarn-session杀死Jobmanager, 查看他的复活情况

注意: yarn-site.xml中是它活的次数的上限, flink-conf.xml中的次数应该小于这个值.

五、Scala REPL

scala 交互环境.

local模式启动 REPL /opt/module/flink-local » 陶醉的钥匙/start-scala-shell.sh local yarn-session 模式启动
先启动一个yarn-session, 然后就可以把shell跑在yarn-session上了 陶醉的钥匙/start-scala-shell.sh yarn 六、K8S & Mesos模式

Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核,在Twitter得到广泛使用,管理着Twitter超过30,0000台服务器上的应用部署,但是在国内,依然使用着传统的Hadoop大数据框架,所以国内使用mesos框架的并不多,这里我们就不做过多讲解了。

容器化部署时目前业界很流行的一项技术,基于Docker镜像运行能够让用户更加方便地对应用进行管理和运维。容器管理工具中最为流行的就是Kubernetes(k8s),而Flink也在最近的版本中支持了k8s部署模式。这里我们也不做过多的讲解.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。