flink----2 安装模式

flink有四种部署模式,jvm和local模式比较简单,这里就不说了,主要说standalone模式和yarn模式

1.standaolne模式

上图是官网上摘录得一张图片,其中master就是jobmananger,worker就是taskmanager,修改flink-conf.yaml中的

jobmananger.rpc.address 指定ip作为jobmananger, slvaves中添加从节点也就是taskmanager机器地址

地,还有一些参数可以参考官方文档configuration page

下面说几个比较重要的参数:

每个作业管理器的可用内存量(jobmanager.heap.mb),

每个任务管理器的可用内存量(taskmanager.heap.mb),

每台计算机的可用CPU数(taskmanager.numberoftaskslots)

群集中的CPU总数(parallelism.default)和

临时目录(io.tmp.dirs)

l

lslot和parallelism总结

1.slot是静态的概念,是指taskmanager具有的并发执行能力

2.parallelism是动态的概念,是指程序运行时实际使用的并发能力

3.设置合适的parallelism能提高运算效率,太多了和太少了都不行

 

关于flink standalone集群中的job的容错

 

ljobmanager挂掉

正在执行的任务会失败

存在单点故障,(Flink支持HA,后面会讲到)

ltaskmanager挂掉

如果有多余的taskmanager节点,flink会自动把任务调度到其它节点执行

 

2、yarn上部署

 Flink on Yarn的两种运行方式

 

l第一种【yarn-session.sh(开辟资源)+flink run(提交任务)

启动一个一直运行的flink集群

./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 [-d]

附着到一个已存在的flink yarn session

./bin/yarn-session.sh -id application_1463870264508_0029

执行任务

./bin/flink run ./examples/batch/WordCount.jar -input hdfs://hadoop100:9000/LICENSE -output hdfs://hadoop100:9000/wordcount-result.txt

停止任务 【web界面或者命令行执行cancel命令】

l第二种【flink run -m yarn-cluster(开辟资源+提交任务)

启动集群,执行任务

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ./examples/batch/WordCount.jar

l注意:client端必须要设置YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_HOME环境变量,通过这个环境变量来读取YARN和HDFS的配置信息,否则启动会失败

./bin/yarn-session.sh 命令分析

用法: 

   必选 

     -n,--container <arg>   分配多少个yarn容器 (=taskmanager的数量) 

   可选 

     -D <arg>                        动态属性 

     -d,--detached                   独立运行 

     -jm,--jobManagerMemory <arg>    JobManager的内存 [in MB] 

     -nm,--name                     在YARN上为一个自定义的应用设置一个名字 

     -q,--query                      显示yarn中可用的资源 (内存, cpu核数) 

     -qu,--queue <arg>               指定YARN队列. 

     -s,--slots <arg>                每个TaskManager使用的slots数量 

     -tm,--taskManagerMemory <arg>   每个TaskManager的内存 [in MB] 

     -z,--zookeeperNamespace <arg>   针对HA模式在zookeeper上创建NameSpace

     -id,--applicationId <yarnAppId>        YARN集群上的任务id,附着到一个后台运行的yarn session中

./bin/flink run 命令分析

 

lrun [OPTIONS] <jar-file> <arguments> 

"run" 操作参数: 

-c,--class <classname>  如果没有在jar包中指定入口类,则需要在这里通过这个参数指定 

-m,--jobmanager <host:port>  指定需要连接的jobmanager(主节点)地址,使用这个参数可以指定一个不同于配置文件中的jobmanager 

-p,--parallelism <parallelism>   指定程序的并行度。可以覆盖配置文件中的默认值。

l默认查找当前yarn集群中已有的yarn-session信息中的jobmanager【/tmp/.yarn-properties-root】

./bin/flink run ./examples/batch/WordCount.jar -input hdfs://hostname:port/hello.txt -output hdfs://hostname:port/result1

l连接指定host和port的jobmanager:

./bin/flink run -m hadoop100:1234 ./examples/batch/WordCount.jar -input hdfs://hostname:port/hello.txt -output hdfs://hostname:port/result1

l启动一个新的yarn-session:

./bin/flink run -m yarn-cluster -yn 2 ./examples/batch/WordCount.jar -input hdfs://hostname:port/hello.txt -output hdfs://hostname:port/result1

注意:yarn session命令行的选项也可以使用./bin/flink 工具获得。它们都有一个y或者yarn的前缀

例如:./bin/flink run -m yarn-cluster -yn 2 ./examples/batch/WordCount.jar

Flink on yarn内部实现

yarn客户端需要访问Hadoop配置以连接到yarn的resource manager和HDFS。它使用以下策略确定Hadoop配置:

是否设置了 YARN_CONF_DIR, HADOOP_CONF_DIR or HADOOP_CONF_PATH 。如果设置了其中一个变量,它将用于读取配置。

如果上述策略失败(在正确的yarn设置中不应出现这种情况),客户机将使用hadoop_home环境变量。如果设置了,客户端将尝试访问$hadoop_home/etc/hadoop(hadoop 2)和$hadoop_home/conf(hadoop 1)。

当启动一个新的flink-yarn会话时,客户机首先检查请求的资源(applicationmaster的内存和vcores)是否可用。之后,它将包含flink和配置的jar上传到hdfs(步骤1)。

客户机的下一步是请求(步骤2)一个yarn容器来启动ApplicationMaster(步骤3)。由于客户机将配置和JAR文件注册为容器的资源,因此在特定机器上运行的yarn节点管理器将负责准备容器(例如下载文件)。完成后,将启动ApplicationMaster(AM)。

JobManager和AM在同一个容器中运行。一旦成功启动,AM就知道JobManager(它自己的主机)的地址。它正在为任务管理器生成一个新的Flink配置文件(以便它们可以连接到作业管理器)。文件也上传到HDFS。此外,AM容器还为Flink的Web界面提供服务。yarn分配的所有端口都是临时端口。这允许用户并行执行多个Flink Sharn会话。

之后,AM开始为Flink的任务管理器分配容器,后者将从HDFS下载JAR文件和修改后的配置。一旦这些步骤完成,Flink就设置好并准备接受作业。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值