哈喽,大家好,那这个视频呢,我们来介绍一下大数据处理框架 spar, 相比于好多款 max 六死,他不仅带来了编程上的便利,带来近百倍的系统提升,那我们一起来看一下。好,那这种我们来先来介绍一下几个 spa 和任务创业过程中的几个核心概念。那我们来看这张图,它包括了抓尾, class manager, 或者我们称之为 master walker 以及 ize cuter 这么四个核心的概念。那当你提交一个 spa 和应用的时候,他就会对应生成一个抓尾的进程, 那他呢,会注册当前十八个任务到 class manager, 并且申请需要的资源,那 class manager 就会协调多个 worker 去申请到你所需要的一个资源。比如说你需要申请三个实力,每个事业包括一个 cpu 和五百种类型,那这边就会申请到这么三个 来满足你的计算需求,那申请到的 s q t 又会反向注册到这里的 driver, 从而使得 driver 和 s q t。 那我们一起来开始运行的 spoke 程序,比如说从 s s 来读取你的原数据,创建 r d d。 那什么是 r d d 呢? r d d 呢?是 spot 中非常核心的概念,它全称是 resident distributed dead set 弹性分布式数据几, 那简单来说就是你代码中的一份数据几,实际上是划分为多个分区,存在多个节点上的,那这样的特性呢,保证你代码逻辑中对象是一致的,但是呢也符合了大数据天然分布式的特点,方便进行分布式的计算。那二弟弟呢,还有个特点,就说他只能从数据园中,比如说 hdfs 来读取生成获得依据宜幼的 ledd, 通过 transformation 这样的算子来计算生成得到那一个 ldd, 通过算子生成另外一个 ldd, 再生成下一个 ldd, 就形成了一系的 ldd 这样的血缘关系。我们 成这位 lineage, 那 rdd 的第二个特点就是延时计算,那比如说一个 rdd, 经过多次的传说, mace 算子生成了一系列的点点,但是它实际并不执行计算,直到碰到一个 action 的算子,比如说这里的 connect 或者 counter 的时候,才真正开始计算。 那最后呢,我们来介绍一下 spa 和运行式的几个关键概念,那比如说这里的 spa 照吧,我们称之为 ipad case 以及 job stage 和 task 他们是一个依次包含这样的关系,那我们来详细来解读一下。比如说你有一个阶段任务,通过 r d 一,通过 map filter 升成二 d 第三, 然后通过 goof by 生成二弟第四,然后 collect 一下,那然后又通过 map 生成二弟第六,然后最终从事到文件。那当我们提到这个计算任务的时候,那整个计算任务我们称之为一个 application, 那一个 application 又划分为多个兆本,那划分的依据呢,就是一些类似于 collect 或者说 save 这样的 action 算子,比如说这里的 collect 和 save, 就把整个 i p k 省划分为这么两个罩吧,那每个罩之内的话又划分为多个 stage, 那划分 stage 的依据我们称之为 shuffle 算子,比如说这里的 go back key 就是一个典型的杀否算子,那这样的杀号算子呢,就把一个罩部划分为两个 stage, s 零和 stay 之一,那每个 stay 之内部呢,又划分为塔斯克,那塔斯克呢,也是斯巴克运行的最小调度单元,那比如说这里的 mapfut, 那当然斯巴内部可能会做些优化,将多个算子合并在一起,那这属于优化这一盆内容。 那刚刚呢,我们也提到一个非常关键的概念,就是沙否,那沙否也是非常多 spa 程序做优化重要的优化的点。那什么是沙否呢?那沙否呢?也是 spa 中非常核心的概念,非常多关于 spa 和优化的主题就是围绕沙发来展开的,当一个阿迪迪有多个分区,在经过些算子的时候,他不得不经过重新分区才能得到结果,那我们称这样的算子来 沙否算子,那有点类似于斗地主中的洗牌一样,说这里有 idd, 他有这么三个分区,那沙发的过程呢,就是让每个分区中 k 相同的部分,比如说这里蓝色的部分 汇总在同一个节点上的过程,我们称之为沙发。那沙发的过程呢,会牵着大量的磁盘读写以及往外,哦,是一个非常 cos 的过程。那常见的沙发算子呢?比如说赵颖,或者各种 good by 结尾的算子,那我也罗列在了屏幕上。 好,那我们今天也介绍了 spa 可的基本概念架构,还有基本原理。那如果说你有什么感兴趣的话题的话,也可以留言讨论,然后呢,我也会推出系列的 spa 的视频,那如果你喜欢的视频的话,也欢迎关注三零。
粉丝1800获赞4025


早期的时候,我们会单纯使用 mybatis 作为 om 框架,但所有色口都要通过叉 ml 的方式手写,比较麻烦。于是市面上就出现了一些 mybatis 的增强框架来增强 mybatis 的能力。比如大家应该比较熟悉的 mybitis plus。 市面上目前有一款功能更加强大的 mabetis 增强框架,叫做 mabetis flex, 号称更清亮、更灵活以及性能更高。这是一个新的专栏,我会将市面上比较流行的框架收录到这个专栏中,让大家之后在做技术选型时有更多选择。 my bets flex 的官网贴了这样一张对比图,对比了他与 my bets plus fluent my bets 的功能。从这张对比图来看, my bets flex 的功能是真的很强大。话不多说,直接体验。 首先引入 my bettis flex the starter, 然后创建了一张名为 t b account 的表,并往里面插入了几条数据,然后定义了一个 account 对象,用 at table 指定表明 at id 指定主键为自动递增, 定义了一个 account maple 继承 basemaper。 现在要查询了,创建一个 curry rapper 对象,然后在无压条件中指定 account 表的 h 字段等于十八,最后进行查询。这里的 account 和 edge 并不是我定义的,而是这个框架在编译过程中自动生成的。 到目前为止,感觉和 my bates plus 十分相似,如果真的做迁移学习,成本十分低。基础查询这块就不做其他介绍了,来看一下关联查询要怎么写。我在用 my bates plus 时,最难 难受的点就是关联查询,还是要自己手写搜口。关联查询在这里有三种方式,我这里主要介绍一下第一种和第三种。第一种方式是通过四个注解来实现四种连表查询的场景,我来演示一个一对一的 又创建了一张表,叫做 t b account detail, 里面三个字段,这个 basic id 就是和 tb account 的 id 关联的字段。需要在 account 这个类中增加一个 account detail 对象,然后用注解 relation one two one 指定自己的哪个属性,关联目标表的哪个属性, 然后使用 select or with relations 就好了。不过我会更喜欢下面这种编程的方式。这两个实体类无需改动。新增一个 video 对象用来接收结果,然后通过 curry rep 先 select 取到所有列, 再通过 freer 和 left 桌影进行表关联。共方法为关联条件,用写代码的方式去写这样一段色口。下面是一些高级功能,比如通过一个注解就能实现的乐观锁功能。又比如通过一个注解实现的数据脱敏, 我在 user name 这个字段上加上了这个注解,脱敏规则为中文名称,然后查询它的结果就直接脱敏掉了。 c 口审计和 c 口打印也是比较常用的功能,买 batis 实现,多数据员要依赖其他框架,在这个框架中直接就集成了,使用也是十分简单。 除了多数据员,连读写分离也都直接做上去了。还有下面很多的数据安全相关的功能,大家有兴趣可以去尝试一下。以上就是本期视频的全部内容了,我是鱼仔,我们下期再见。

