flink学习笔记-flink on yarn的两种模式都学会了吗?

flink on yarn模式

  • flink的任务也可以运行在yarn上面,将flnk的任务提交到yarn平台,通过yarn平台来实现我们的任务统一的资源调度管理,方便我们管理集群当中的CPU和内存等资源
  • flink on yarn又分为两种模式
    在这里插入图片描述
1:第一种模式:单个yarn session模式
  • 这种方式需要先启动集群,然后在提交作业,接着会向yarn申请一块资源空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,那下一个作业才会正常提交,实际工作当中一般不会使用这种模式
    这种模式,不需要做任何配置,直接将任务提价到yarn集群上面去,我们需要提前启动hdfs以及yarn集群即可
    • 第一步:修改yarn-site.xml配置为文件
    cd /opt/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
    vim 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>
    # 改后的配置文件拷贝到node02与node03服务器
    scp yarn-site.xml  node02:$PWD
    scp yarn-site.xml  node03:$PWD
    # 重启yarn集群
    
    • 第二步:修改flink配置文件
    # node01执行以下命令更改flink配置文件
    cd /opt/install/flink-1.8.1/conf
    vim flink-conf.yaml
    # 修改为
    high-availability: zookeeper
    high-availability.storageDir: hdfs://node01:8020/flink_yarn_ha
    high-availability.zookeeper.path.root: /flink-yarn
    high-availability.zookeeper.quorum: node01:2181,node02:2181,node03:2181
    yarn.application-attempts: 10
    #hdfs上面创建文件夹(为了区别standAlone模式从新重建文件夹)
    hdfs dfs -mkdir -p /flink_yarn
    
    • 第三步:在yarn当中启动flink集群
    # node1执行以下命令 如果在启动的时候,yarn的内存太小,可能会报错误
    cd /opt/install/flink-1.8.1/
    bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 [-d]
    # 如果在启动的时候,yarn的内存太小,可能会报以下错误
    Diagnostics: Container [] is running beyond virtual memory limits. Current usage: 		250.5 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing containerpid=6386,containerID=container_1521277661809_0006_01_000001
    # 需要修改yarn-site.xml添加以下配置,然后重启yarn即可
    <property>  
    	 <name>yarn.nodemanager.vmem-check-enabled</name>  
    	<value>false</value>  
    </property> 
    
    • 第四步:查看yarn管理界面
      • 问yarn的8088管理界面,发现yarn当中有一个应用:http://node01:8088/cluster。yarn当中会存在一个常驻的application,就是为我们flink单独启动的一个session
    • 第五步:提交任务
    # 创建测试文件
    vim wordcount.txt
    # 内容如下
    hello world
    flink hadoop
    # hdfs上面创建文件夹并上传文件
    hdfs dfs -mkdir -p /flink_input
    hdfs dfs -put wordcount.txt  /flink_input
    # 提交任务到flink集群
    cd /kkb/install/flink-1.8.1
    bin/flink run ./examples/batch/WordCount.jar 
    -input hdfs://node01:8020/flink_input
    -output hdfs://node01:8020/flink_output/wordcount-result.txt
    

第二种模式:多个yarn session模式

  • 这种方式的好处是一个任务会对应一个job,即每提交一个作业会根据自身的情况,向yarn申请资源,直到作业执行完成,并不会影响下一个作业的正常运行,除非是yarn上面没有任何资源的情况下。
    注意:client端必须要设置YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_HOME环境变量,通过这个环境变量来读取YARN和HDFS的配置信息,否则启动会失败
    不需要在yarn当中启动任何集群,直接提交任务即可
    • 第一步:直接执行命令提交任务
    cd /opt/install/flink-1.8.1/
    bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ./examples/batch/WordCount.jar -input hdfs://node01:8020/flink_input -output hdfs://node01:8020/out_result/out_count.txt
    
    • 第二步:查看输出结果
    hdfs dfs -text hdfs://node01:8020/out_result/out_count.txt
    
发布了40 篇原创文章 · 获赞 59 · 访问量 1405

猜你喜欢

转载自blog.csdn.net/qq_26719997/article/details/105010104