• Flink 基础学习


    视频:https://www.bilibili.com/video/BV1qy4y1q728?p=14&spm_id_from=333.33.header_right.history_list.click

    转载笔记:https://ashiamd.github.io/docsify-notes/#/study/BigData/Flink/%E5%B0%9A%E7%A1%85%E8%B0%B7Flink%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0?id=_11-flink-vs-spark-streaming

    Flink是什么?为什么要有这个东西?它和Spark-streaming 的区别?

    Flink 架构

    应用场景:广告主投放广告看效果,电商推荐系统推荐热门商品和根据用户画像及时推荐。

     Standalone 模式下部署

    客户端提交Job流程:分两种,一个是web ui 提交,一个是客户端提交

     web UI 提交:

    启动Flink后,可以在Web UISubmit New Job提交jar包(在IDEA先编译,再package则生成jar包),然后指定Job参数。

    • Entry Class

      程序的入口,指定入口类(类的全限制名)

    • Program Arguments

      程序启动参数,例如--host localhost --port 7777

    • Parallelism

      设置Job并行度。

      Ps:并行度优先级(从上到下优先级递减)

      • 代码中算子setParallelism()
      • ExecutionEnvironment env.setMaxParallelism()
      • 提交job时候手动在UI界面设置的Job并行度
      • 集群conf配置文件中的parallelism.default

      ps:socket等特殊的IO操作,本身不能并行处理,并行度只能是1

    • Savepoint Path

      savepoint是通过checkpoint机制为streaming job创建的一致性快照,比如数据源offset,状态等。

      (savepoint可以理解为手动备份,而checkpoint为自动备份)

    ps:提交job要注意分配的slot总数是否足够使用,如果slot总数不够,那么job执行失败。(资源不够调度)

    这里提交前面demo项目的StreamWordCount,在本地socket即nc -lk 7777中输入字符串,在taskmanagers-->stdout中查看结果

    输入:

    hello world, and thank you!

    输出:

    可以看出来输出的顺序并不是和输入的字符串严格相同的,因为是多个线程并行处理的。

    1> (world,,1)
    2> (and,1)
    1> (thank,1)
    2> (you!,1)
    2> (hello,1)

    3.1.2 命令行提交job

    1. 查看已提交的所有job

      $ bin/flink list      
      Waiting for response...
      ------------------ Running/Restarting Jobs -------------------
      30.01.2021 17:09:45 : 30d9dda946a170484d55e41358973942 : Flink Streaming Job (RUNNING)
      --------------------------------------------------------------
      No scheduled jobs.
    2. 提交job

      • -c指定入口类
      • -p指定job的并行度

      bin/flink run -c <入口类> -p <并行度> <jar包路径> <启动参数>

      $ bin/flink run -c wc.StreamWordCount -p 3 /tmp/Flink_Tutorial-1.0-SNAPSHOT.jar --host localhost --port 7777
      Job has been submitted with JobID 33a5d1f00688a362837830f0b85fd75e
    3. 取消job

      bin/flink cancel <Job的ID>

      $ bin/flink cancel 30d9dda946a170484d55e41358973942
      Cancelling job 30d9dda946a170484d55e41358973942.
      Cancelled job 30d9dda946a170484d55e41358973942.

    注:Total Task Slots只要不小于Job中Parallelism最大值即可。

    eg:这里我配置文件设置taskmanager.numberOfTaskSlots: 4,实际Job运行时总Tasks显示9,但是里面具体4个任务步骤分别需求(1,3,3,2)数量的Tasks,4>3,满足最大的Parallelism即可运行成功。

  • 相关阅读:
    反射-特性
    反射-2
    反射-1
    智能楼宇管理实用手册
    山光凝翠,川容如画——太原西山地区的历史营建与遗存
    城市逆向规划建设:基于城市生长点形态与机制的研究
    建筑快题设计50问与100例
    明清建筑二论·斗栱的起源与发展
    建筑工程计量与计价实训教程(甘肃版)
    室内设计手绘快速表现技法火星课堂
  • 原文地址:https://www.cnblogs.com/pengpenghuhu/p/16095184.html
Copyright © 2020-2023  润新知