• 【无标题】


    standalone session模式

    基于服务器上,搭建的flink集群进行提交flinkjob的方式

    优点:

    1、不需要启动yarn,结构简单,常用于测试

    缺点:

    1、资源无法回收:一旦集群启动之后,taskmanager和jobmanager就启动好了,无论你替补提交job都需要占用运行资源

    2、程序隔离度不够:所有个flink-job公用同一个集群环境,会相互占用slot,而且如果一个flink-job出现异常导致集群环境崩溃,正常的flink-job也会gg

    适合场景:适合规模小执行时间短的作业,一般是测试的时候用。生产环境一般不用

    1. # 提交 standalone 模式的 job
    2. # -c 主类名
    3. # -p 并行度
    4. # -s 从指定 savepoint 恢复
    5. bin/flink run -t remote \
    6. -c cn.doitedu.flink.java.demos._28_ToleranceSideToSideTest \
    7. -p 5 \
    8. -s hdfs://doit01:8020/eos_savepoint1/savepoint-5f1bc3-dde7a8627fff \
    9. /root/flink_course-1.0.jar
    10. # 触发 standalone 模式 job 做 savepoint
    11. # -d : detach 模式,客户端提交完 job 即退出
    12. # -t remote : 表示 job 是 standalone 运行模式
    13. bin/flink savepoint -t remote 5f1bc357bfd1e686e34b6cfce6d0cda9 hdfs://doit01:8020/eos_savepoint1
    1. flink list
    2. flink cancel 74e2ce94692adc28c6f3c7a156f96694

     

    yarn

    flink on yarn,本质上就是去yarn集群上申请容器,来运行flink的 jobmanager+taskmanager 集群

    flink的job,是flink集群内部的概念,它对yarn是不可见的

    yarn-session

    基于yarn上的session模式,进行提交flinkjob的方式,相当于yarn上的运行的standalone session

    优点:相较于standalone模式,比本地好的一点在于 需要多少taskmanager和slot就申请多少,而不是定额,而且新版本yarn-session,job cancel之后会回收taskmanager资源,但是jobmanager会一直在。

    缺点:程序隔离度不够:所有个flink-job公用同一个集群环境,会相互占用slot,而且如果一个flink-job出现异常导致集群环境崩溃,正常的flink-job也会gg

    适合场景:适合规模小执行时间短的作业

    首先开辟资源启动 session 模式集群

    1. # 老版本:
    2. bin/yarn-session.sh -n 3 -jm 1024 -tm 1024
    3. # -n --> 指定需要启动多少个 Taskmanager
    4. # 新版本:
    5. bin/yarn-session.sh -jm 1024 -tm 1024 -s 2 -m yarn-cluster -ynm hello -qu default
    6. # -jm --> jobmanager memory
    7. # -tm --> taskmanager memory
    8. # -m yarn-cluster --> 集群模式(yarn 集群模式)
    9. # -s --> 规定每个 taskmanager 上的 taskSlot 数(槽位数)
    10. # -nm --> 自定义 appliction 名称
    11. # -qu --> 指定要提交到的 yarn 队列

    向已运行的 session 模式集群提交 job

    1. # 通过命令提交 job 到已运行的 yarn-session 集群
    2. bin/flink run -d -yid application_1550579027777_65420 -p 4 -c
    3. cn.flink.java.demos.test /root/flink.jar
    4. # 通过已运行 yarn-session 集群的 webui 上提交 job
    flink stop -m yarn-cluster -yid application_1550579027777_65420 c8ee546129e8480809ee62a4ce7dd91d

    yarn-per-job

    一个任务会对应一个 Job,每提交一个作业会根据自身的情况,都会单独向 yarn 申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享 Dispatcher 和ResourceManager,按需接受资源申请

    main方法在client上运行 

    优点:每个作业单独启动集群,隔离性好,JM 负载均衡,main 方法在客户端执行。
    在 per-job 模式下,每个 Job 都有一个 JobManager,每个 TaskManager 只有单个 Job。

    缺点:启动时间长,每次启动的时候现开辟yarn资源环境

    适合场景:适合规模大长时间运行的作业

    bin/flink run -m yarn-cluster -yjm 1024 -ynm test -yqu default -ys 2 -ytm 1024 -p 4 -c cn.test.test1 /root/test.jar
    flink stop -m yarn-cluster -yid application_1550579027777_65420 c8ee546129e8480809ee62a4ce7dd91d

    yar-application

    main方法在yarn集群上运行 

    其余相比per-job类似

    1. bin/flink run-application -t yarn-application \
    2. -yjm 1024 -ynm sea -yqu default -ys 2 \
    3. -ytm 1024 -p 4 \
    4. -c cn.doitedu.flink.java.demos._27_KafkaSinkYarn /root/flink_course-1.0.jar
    flink stop -m yarn-cluster -yid application_1550579027777_65420 c8ee546129e8480809ee62a4ce7dd91d
  • 相关阅读:
    ES 关于text和keyword两种类型数据搜索区别
    使用Redis将单机登录改为分布式登录
    Java8实战-总结33
    JVM自定义类加载器在代码扩展性的实践
    Golang基本命令操作
    .NET 邮件发送 SMTP邮件发送
    Java的集合框架总结
    Element修改弹窗类组件的层级
    mysql与oracle分页的有什么区别
    2022.7.28面试总结
  • 原文地址:https://blog.csdn.net/java_creatMylief/article/details/126172793