20-01-flink

一个任务的子任务占据一个slot,不同任务可以占据同一个slot。

文章:https://www.cnblogs.com/xiexiandong/p/12770187.html

flink的reduce:https://www.jianshu.com/p/0cdf1112d995

https://blog.csdn.net/dinghua_xuexi/article/details/107766222

元组:https://blog.csdn.net/xiaohulunb/article/details/103883713

资料:

scala插件下载:http://plugins.jetbrains.com

flink的官方文档:https://flink.apache.org/zh/flink-architecture.html

flnk是流式的处理,spark是批式的处理。

处理的架构:

---01---

oltp关系

基于事件实时的响应的,问题是数据量非常多的话数据库的压力会很大的。

olap分析

演化还是基于事件的方式的。

不是读取关系型数据库而是保存在本地的状态。

checkpoint检查点。

flink解决了批和流的两套,合并为一套。

---

flink是事件的驱动的。

基于流的处理:

批处理是有界的流。

flink的分层api

主要是中间层。

---02---

开发环境写flink的代码。

代码实现一个简单的wordcount

代码:

关于flatMap:https://blog.csdn.net/zhuwukai/article/details/82888316

map和flatmap:https://blog.csdn.net/u010824591/article/details/50732996?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control

flatmap的很牛逼的解释:https://www.cnblogs.com/yucy/p/10260014.html

flatMap:http://dblab.xmu.edu.cn/blog/961-2/

DataSet是我们中间层的api:https://blog.csdn.net/weixin_42702831/article/details/82492421

这个过程flink是要做统一的管理的。

---03---

几个具体的语义:

flink是事件驱动的,在流式处理的时候才会有事件的概念。读取文件的每一行式一个事件。

第一步:

第二步:再来

第三步:再来再次得到的式GroupDataSet

---04---

注意之前是批处理的,现在是流处理的。

流处理的代码:

keyBy实际做的事情是和groupBy是一样的, keyBy是重分区的。flink需要外部的事件去驱动的。

启动参数:

一台机器多个线程,模拟分布式,序号是线程的编号,默认的并行度是cpu核心的数量:

我们是可以调整并行度的:

再次运行,看到不是默认的4核心了。

全局的并行度是8,实际上每一步都是可以单独配置并行度的。

两个并行度配置6个

reblance 上游的任务和下游的任务的关系

---05---

我的版本是什么:

yarn是必须要有hadoop支持的版本的。

需要下载binaries

需要hadoop支持的话:

增加了hadoop

用这个就可以了。

部署和提交,部署到集群环境里面去。

部署:flink的下载地址:http://archive.apache.org/dist/flink/

我的flink部署在哪里:https://blog.csdn.net/qq_28764557/article/details/109913185

在实际的生产中用yarn是比较普遍的方式的,我们是standlone模式的。

怎么安装的自己要好好看下的。

flink的机器是133这个机器。

在bin下面:

yarn-session:创建yarn-session在yarn-session创建job和提交的。

配置文件:注意版本是1.10.0

1.看下配置文件,在哪里启动集群,一个集群的job-manager就是一个的

2.jobmanager和其他节点通信都是rpc的方式的,默认的是6123。

3.第一个式jvm的堆大小,第二个是堆和堆外的大小

实际是taskmanager是干活的要的资源要多的。jobmanager是调度的。

4.指的是一个taskmanageer可以提供多少个slots 一个slot就是用来执行任务的最小的单元 一个并行的任务不同的子任务必须执行再不同的taskSlot上。

5.默认的并行度,第一个是能力,第二个是我的执行力就是默认的,能力很大但是我可以不用。代码配置的优先级是最高的。

6.故障恢复的策略。

7.访问的端口

8.其它的配置 需要配置slaves文件去增加taskmanager

如何启动呢?

还有文件masters和slaves

本地的机器即启动了JobManager也启动了taskManager。

参数的解读:192.168.244.133:8081

 

这里:task Manager是1,配置文件一个task Manage提供1个slot。每个taskManager的taskSlot的数量就是节点的核心数量。

设置时间同步:https://blog.csdn.net/dingxiaohuang4790/article/details/101941755

在哪里打包呢?

生成的jar包是带后缀的。

并行度的优先级,从高到底:

1.代码最高单独配置最高

2.全局声明的环境第二

3.

读取文本流是不能控制

同一个任务的并行子任务而言的,同一个任务的并行子任务是不可以分配到一个slot的,但是不同任务的并行子任务是可以的。

主要是因为i同一个任务的并行子任务可能会共享数据,这样是线程不安全的。

一般是一个slot对应的与一个cpu资源的。

4.flink的配置文件的

参数:com.atguigu.wc.StreamWordCount

 --host localhost --port 7777

---

目前只有1个slot,被分配了。

这个指的是两个任务,并行度是1,每个子任务是共享的处理槽。

相同的key的hashcode是一样的,就会分配到同一个分区里面去。

两个任务是可以用一个处理槽处理的。同一个任务的并行子任务必须分配到不同的slot。

另一种提交方式:

其中p是并行度。

结束:

提交方式还要再看的,先不看了。

---06---

前后执行的任务可以共享slot。

slot就是定义好的最小的处理任务的单元。

dispatch收到应用,启动jobManager,将应用提交给jobManager,jobManager分析应用,向resourcemanager去请求slot。

resourcemanager启动对应的taskManager。

 

这里的resourceManager实际上是yarn的resourceManager。

客户端提交job给yarn的resourcemanager。

ApplicationMaster去加载HFDFS上的资源。

 

这个是5个任务,这5个任务并不需要都独立的占用一个taskSlot。

可以让不同的任务共享一个slot。

一个TM有三个slot就是内存分为3份给每一个slot

slot之间内存是独享的,是隔离的。cpu不是独享的。slot数量配置为核心线程数,不会出现cpu轮转竞争资源的方式。

上面那个图有5个任务。

并行度就是slot的个数,上图的并行度是6。一共是13个任务。

什么是任务?逻辑图是算子,物理图是任务。一个算子可以有多个任务的。一个任务占据一个处理槽。多个不同算子的任务可以共享有个处理槽。

13个任务,不同任务共享slot。

一个slot是可以包含完整的操作的步骤的,完整的管道是可以保留下来的。

 

跨slot要序列化反序列化的。

一个程序需要的slot的数量就是整个流处理流程中那个最大的并行度。

taskmanager是任务,一个slot是一个子任务。

并行度即使slot的数量。

---07---

任务链:

看下并行度我们是如何定义的:

这个按照并行度,我们分为了7个任务,这些任务是如何占用slot的呢?

图中几个圆圈就是几个任务,不一样的任务是可以共享slot的,可以只占用两个slot:

最后两个slot五个任务。

并行度相同还是窄依赖的可以合并的。

---08---

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值