自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 flink笔记10(多流转换 )

所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个 DataStream,得到完全平等的多个子 DataStream,如图 8-1 所示。一般来说,我们会定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。其实根据条件筛选数据的需求,本身非常容易实现:只要针对同一条流多次独立调用.filter()方法进行筛选,就可以得到拆分之后的流了。例如,我们可以将电商网站收集到的用户行为数据进行一个拆分,根据类型(type)的不同,分为“Mary”的浏览数据、“Bob”的浏览数据

2022-10-30 20:08:39 526 1

原创 flink笔记9(处理函数)

之前所介绍的流处理 API,无论是基本的转换、聚合,还是更为复杂的窗口操作,其实都是基于 DataStream 进行转换的;所以可以统称为 DataStream API,这也是 Flink 编程的核心。而我们知道,为了让代码有更强大的表现力和易用性,Flink 本身提供了多层 API,DataStreamAPI 只是中间的一环,如图 7-1 所示:在更底层,我们可以不定义任何具体的算子(比如 map,filter,或者 window),而只是提炼出一个统一的“处理”(process)操作——它是所有转

2022-10-16 19:38:02 665

原创 Vue笔记3(计算属性,监视属性,绑定样式)

【代码】Vue笔记3(计算属性,监视属性,绑定样式)

2022-10-16 19:15:48 848

原创 flink笔记8(接笔记7——窗口(Window),迟到数据的处理)

Flink 是一种流式计算引擎,主要是来处理无界数据流的,数据源源不断、无穷无尽。想要更加方便高效地处理无界流,一种方式就是将无限数据切割成有限的“数据块”进行处理,这就是所谓的“窗口”(Window)。在 Flink 中, 窗口就是用来处理无界流的核心。我们很容易把窗口想象成一个固定位置的 “框”,数据源源不断地流过来,到某个时间点窗口该关闭了,就停止收集数据、触发计算并输出结果。例如,我们定义一个时间窗口,每 10 秒统计一次数据,那么就相当于把窗口放在那里,从 0 秒开始收集数据;到 10 秒时,处

2022-10-07 17:45:14 916

原创 flink笔记7(Flink 中的时间和窗口——时间语义,水位线)

在事件时间语义下,我们不依赖系统时间,而是基于数据自带的时间戳去定义了一个时钟,用来表示当前时间的进展。于是每个并行子任务都会有一个自己的逻辑时钟,它的前进是靠数据的时间戳来驱动的。但在分布式系统中,这种驱动方式又会有一些问题。因为数据本身在处理转换的过程中会变化,如果遇到窗口聚合这样的操作,其实是要攒一批数据才会输出一个结果,那么下游的数据就会变少,时间进度的控制就不够精细了。另外,数据向下游任务传递时,一般只能传输给一个子任务(除广播外),这样其他的并行子任务的时钟就无法推进了。

2022-10-07 17:22:11 789

原创 flink笔记6(接笔记5——转换算子(Transformation),输出算子(Sink))

1、映射(map)map 是大家非常熟悉的大数据操作算子,主要用于将数据流中的数据进行转换,形成新的数据流。简单来说,就是一个“一一映射”,消费一个元素就产出一个元素,如图 5-5 所示。上面代码中,MapFunction 实现类的泛型类型,与输入数据类型和输出数据的类型有关。在实现 MapFunction 接口的时候,需要指定两个泛型,分别是输入事件和输出事件的类型,还需要重写一个 map()方法,定义从一个输入事件转换为另一个输出事件的具体逻辑。另外,细心的读者通过查看 Flink 源码可以发

2022-10-02 13:12:39 383

原创 flink笔记5(DataStream API(基础篇)——执行环境(Execution Environment),源算子(Source))

大多数情况下,前面的数据源已经能够满足需要。但是凡事总有例外,如果遇到特殊情况,我们想要读取的数据源来自某个外部系统,而 flink 既没有预实现的方法、也没有提供连接器,又该怎么办呢?那就只好自定义实现 SourceFunction 了。接下来我们创建一个自定义的数据源,实现 SourceFunction 接口。主要重写两个关键方法:run()和 cancel()。⚫run()方法:使用运行时上下文对象(SourceContext)向下游发送数据;

2022-10-02 13:12:21 913

原创 flink笔记4(Flink 运行时架构)

JobManager 是一个 Flink 集群中任务管理和调度的核心,是控制应用执行的主进程。也就是说,每个应用都应该被唯一的 JobManager 所控制执行。当然,在高可用(HA)的场景下,可能会出现多个 JobManager;这时只有一个是正在运行的领导节点(leader),其他都是备用节点(standby)。JobManger 又包含 3 个不同的组件,下面我们一一讲解。JobMasterJobMaster 是 JobManager 中最核心的组件,负责处理单独的作业(Job)。所以 JobMast

2022-09-25 22:52:42 344

原创 flink笔记2(Flink 快速上手)

这是正常的——因为 Flink 的流处理是事件驱动的,当前程序会一直处于监听状态,只有接收到数据才会执行任务、输出统计结果。为了模拟这种场景,我们就不再通过读取文件来获取数据了,而是监听数据发送端主机的指定端口,统计发送来的文本数据中出现过的单词的个数。在实际的生产环境中,真正的数据流其实是无界的,有开始却没有结束,这就要求我们需要保持一个监听事件的状态,持续地处理捕获的数据。运行时不同的并行资源。另外需要说明,这里显示的编号为 1~4,是由于运行电脑的 CPU 是 4 核,所以默认模拟的并行线程有 4。

2022-09-18 19:13:17 1086

原创 flink笔记3(Flink 部署)

总结一下,在会话模式下,集群的生命周期独立于集群上运行的任何作业的生命周期,并且提交的所有作业共享资源。(4)进入 conf 目录,修改 flink-conf.yaml 文件,修改以下配置,这些配置项的含义在进行 Standalone 模式配置的时候进行过讲解,若在提交命令中不特定指明,这些配置将作为默认配置。主要配置程序入口主类的全类名,任务运行的并行度,任务运行所需的配置参数和保存点路径等,如图 3-6 所示,配置完成后,即可点击按钮“Submit”,将任务提交到集群运行。

2022-09-18 19:12:59 1803

原创 flink笔记1(初识 Flink)

Flink 是第三代分布式流处理器,它的功能丰富而强大。

2022-09-11 19:27:33 412

转载 Hive笔记3(查询)

➢distribute by 的分区规则是根据分区字段的 hash 码与 reduce 的个数进行模除后,余数相同的分到一个区。RLIKE 子句是 Hive 中这个功能的一个扩展,其可以通过 Java 的正则表达式这个更强大的语言来指定匹配条件。注意:按照部门编号分区,不一定就是固定死的数值,可以是 20 号和 30 号部门分到一个分区里面去。(1)根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称;(1)求每个部门的平均薪水大于 2000 的部门求每个部门的平均工资。

2022-09-11 18:13:55 1357

原创 电商数仓笔记7_数据仓库系统(数仓搭建-DWD层,数仓搭建-DWS层,数仓搭建-DWT层,数仓搭建-ADS层)

1)map结构数据定义2)array结构数据定义3)struct结构数据定义4)struct和array嵌套定义。

2022-09-04 16:51:35 768

原创 电商数仓笔记8_数据仓库系统(Azkaban部署,创建MySQL数据库和表,Sqoop导出脚本,全调度流程)

Azkaban中预置了几个特殊的判断条件,称为预定义宏。预定义宏会根据所有父Job的完成情况进行判断,再决定是否执行。可用的预定义宏如下:(1)all_success: 表示父Job全部成功才执行(默认)(2)all_done:表示父Job全部完成才执行(3)all_failed:表示父Job全部失败才执行(4)one_success:表示父Job至少一个成功才执行(5)one_failed:表示父Job至少一个失败才执行1)案例需求:JobA执行一个shell脚本。

2022-09-04 16:50:39 502

原创 电商数仓笔记6_数据仓库系统(数仓搭建-ODS层,数仓搭建-DIM层)

1)保持数据原貌不做任何修改,起到备份数据的作用。2)数据采用LZO压缩,减少磁盘存储空间。100G数据可以压缩到10G以内。3)创建分区表,防止后续的全表扫描,在企业开发中大量使用分区表。4)创建外部表。在企业开发中,除了自己用的临时表,创建内部表外,绝大多数场景都是创建外部表。1)创建支持lzo压缩的分区表(1)建表语句说明Hive的LZO压缩:(2)分区规划2)加载数据注意:时间格式都配置成YYYY-MM-DD格式,这是Hive默认支持的时间格式3)为lzo压缩文件创建索引(2)S

2022-08-28 21:29:13 553

原创 电商数仓笔记5_数据仓库系统(数仓分层,数仓理论,数仓环境搭建)

Hive引擎包括:默认MR、tez、sparkHive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。Spark on Hive : Hive只作为存储元数据,Spark负责SQL解析优化,语法是Spark SQL语法,Spark负责采用RDD执行。...

2022-08-28 21:28:42 681

原创 电商数仓笔记4_业务数据采集平台(电商业务简介,业务数据采集模块,数据环境准备)

电商的业务流程可以以一个普通用户的浏览足迹为例进行说明,用户点开电商首页开始浏览,可能会通过分类查询也可能通过全文搜索寻找自己中意的商品,这些商品无疑都是存储在后台的管理系统中的。当用户寻找到自己中意的商品,可能会想要购买,将商品添加到购物车后发现需要登录,登录后对商品进行结算,这时候购物车的管理和商品订单信息的生成都会对业务数据库产生影响,会生成相应的订单数据和支付数据。订单正式生成之后,还会对订单进行跟踪处理,直到订单全部完成。

2022-08-21 20:45:34 1740

原创 电商数仓笔记3_用户行为采集(Zookeeper安装,Kafka安装,采集日志Flume,消费Kafka数据Flume,采集通道启动/停止脚本(zk和kf有着一定的顺序),2NN页面不能显示完整信息)

7)分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2。hadoop102、hadoop103、hadoop104三台集群的网络总带宽30m/s左右,由于是两个副本,所以Kafka的吞吐量30m/s ➗ 2(副本) = 15m/s。(1)在hadoop102服务器的/opt/module/flume/conf/flume-env.sh文件中增加如下配置。

2022-08-21 20:44:38 1055

原创 Hadoop_MapReduce笔记1(MapReduce概述,Hadoop序列化)

MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。(1)分布式的运算程序往往需要分成至少2个阶段。(2)第一个阶段的MapTask并发实例,完全并行运行,互不相干。(3)第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。(4)

2022-08-21 20:44:10 349

原创 Hadoop_HDFS笔记3(NameNode和SecondaryNameNode,DataNode,面试重点)

3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。(1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。(1)第一次启动NameNode格式化后,创建Fsimage和Edits文件。直接带回NameNode是否检查结果。(2)DataNode启动后向NameNode注册,通过后,周期性(6小时)的向NameNode上报所有的块信息。.....

2022-08-12 21:48:55 120

原创 Hadoop_HDFS笔记2(HDFS的API操作,HDFS的读写流程(面试重点))

7)客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;参数优先级排序:(1)客户端代码中设置的值 >(2)ClassPath下的用户自定义配置文件 >(3)然后是服务器的自定义配置(xxx-site.xml) >(4)服务器的默认配置(xxx-default.xml)客户端去操作HDFS时,是有一个用户身份的。(2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。...

2022-08-12 21:48:36 624

原创 电商数仓笔记2_用户行为采集(数据采集模块)

HDFS的DataNode节点保存数据的路径由dfs.datanode.data.dir参数决定,其默认值为file://${hadoop.tmp.dir}/dfs/data,若服务器有多个磁盘,必须对该参数进行修改。面临问题:数据统计主要用HiveSQL,没有数据倾斜,小文件已经做了合并处理,开启的JVM重用,而且IO没有阻塞,内存用了不到50%。但是还是跑的非常慢,而且数据量洪峰过来时,整个集群都会宕掉。由于目前只有三台服务器,且有三个副本,数据读取就近原则,相当于都是读取的本地磁盘数据,没有走网络。.

2022-08-12 21:48:05 198

原创 Hive笔记1(Hive 基本概念 ,Hive 的优缺点, Hive 架构原理 ,Hive 和数据库比较,Hive安装)

2)命令行参数方式启动 Hive 时,可以在命令行添加-hiveconf param=value 来设定参数。

2022-08-05 22:40:06 397

原创 Hive笔记2(Hive 数据类型,DDL 数据定义,DML 数据操作)

1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db。2)避免要创建的数据库已经存在错误,增加 if not exists 判断。(标准写法)3)创建一个数据库,指定数据库在 HDFS 上存放的位置。...

2022-08-05 22:39:36 1082

原创 电商数仓笔记1_用户行为采集(数据仓库概念,项目需求及架构设计,数据生成模块)

1)将application.yml、gmall2020-mock-log-2021-01-22.jar、path.json、logback.xml上传到hadoop102的/opt/module/applog目录下。方式一,在离开该页面时,上传在这个页面产生的所有数据(页面、事件、曝光、错误等)。缺点,不是特别及时。(6)分别在hadoop102、hadoop103的/opt/module/applog/log目录上查看生成的数据。(2)在/opt/module/applog/log目录下查看生成日志。.

2022-08-05 22:39:06 1848 1

原创 MySQL笔记2(函数,约束,多表查询,事务)

概念约束是作用于表中字段上的规则,用于限制存储在表中的数据目的保证数据库中的数据的正确,有效和完整分类约束是作用于表中字段的,可以在创建表或修改表的时候添加约束。查询这两张表会出现无效的匹配(如下)如何消除无效的笛卡尔积(如下),找出两张表外键关联的地方比如银行转账。...

2022-07-30 09:41:30 201

原创 MySQL笔记1(数据库的好处,数据库的概念,数据库的特点,MySQL的启动,数据模型,SQL)

如char(10)和varchar(10),char(10)如果你存储一个字符但是还是占用10个字符的空间,其他空间会使用空格补位,但是性能好;而varchar(10),存储一个字符就是占用一个字符的空间,相对于char性能较差。将C\ProgramFiles\MySQL\MySQLServer8.0\bin加入到里面即可。配置环境变量,打开电脑的高级属性,找到。根据此代码可判断执行顺序,起别名的方式。案例用户名和性别使用的字符串类型。(4)使用正确数据类型的案例。...

2022-07-30 09:41:06 829

原创 C++笔记3(函数提高,模板)

为什么func(a)调用的是无const,因为int&a=a合法,而int&a=10不合法,constint&a=10合法;总结类模板和函数模板相似,在声明模板的时候template后面加类,此类称为类模板。总结既然提供了函数模板,最好就不要提供普通函数,不然容易出现二义性。3、总结类模板中的成员函数并不是一开始就创建的,在调用时才去创建。3、总结如果父类是类模板,子类需要指定出父类中T的数据类型。2、总结类模板中的成员函数类外实现时,需要加上模板参数列表。...

2022-07-30 09:40:36 114

原创 Hadoop_HDFS笔记1(概述,HDFS的Shell操作(开发重点))

hadoopfs具体命令ORhdfsdfs具体命令两个是完全相同的。

2022-07-21 15:34:23 173

原创 Hadoop_入门笔记2(hadoop运行模式,两道面试题(常用端口号,常用配置文件))

1)各个服务组件逐一启动/停止(1)分别启动/停止HDFS组件(2)启动/停止YARN(2)各个模块分开启动/停止(配置ssh是前提)常用(1)整体启动/停止HDFS(2)整体启动/停止YARN。

2022-07-21 15:33:48 191

原创 Hadoop_入门笔记1(Hadoop是什么,Hadoop的组成,大数据技术生态体系,推荐系统框架图,hadoop运行环境搭建)

Map和Reduce(1)Map阶段并行处理输入数据(2)Reduce阶段对Map结果进行汇总。

2022-07-21 15:33:24 459 1

原创 C++笔记2(内存分区模型,引用)

2)内存四区的意义不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。(1)C++在程序执行时,将内存大方向划分为4个区域。(1)在程序编译后,生成了exe可执行程序,a,b,c的值都是20。...

2022-07-16 17:08:39 1054 2

原创 Linux笔记3(用户权限类,搜索查找类,压缩解压类,磁盘管理类,进程管理类,系统定时任务)

1)如果查看到是文件链接数指的是硬链接个数。(2)如果查看的是文件夹链接数指的是子文件夹个数。

2022-07-15 15:15:59 365

原创 Linux笔记4(软件包管理,Shell编程)

1)RPM(RedHatPackageManager),RedHat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。(2)RPM包的名称格式“apache”软件名称“1.3.23-11”软件的版本号,主版本和此版本“i386”是软件所运行的硬件平台,Intel32位处理器的统称“rpm”文件扩展名,代表RPM包(1)Linux提供的Shell解析器有/bin/sh。...

2022-07-15 15:14:33 312

原创 Linux笔记2(帮助命令,文件目录类,时间日期类)

type+命令——查看命令形式(内嵌之类的……)1、man获得帮助信息(1)基本语法man [命令或配置文件] (功能描述:获得帮助信息)(2)显示说明(3)案例实操2、help 获得shell内置命令的帮助信息一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动后会随着shell一起加载,常驻系统内存中,这部分命令被称为“内置命令”;相应的其他命令被称为“外部命令”(1)基本语法help 命令 (功能描述:获得shell内置命令的帮助信息)(2)案例实操1、pwd 显示当前工作目

2022-07-10 14:24:18 290

原创 Linux笔记1(Linux 与 Windows,终端基本操作,Linux文件系统,VI / VIM编辑器,网络配置,远程登录,系统管理)

模式转换转换成编辑模式时,可以按u撤回所编辑的,:w写入(即保存),:set nu显示行号,:set nonu不显示行号桥接模式:虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问到外部网络,并且对外部网络是可见的,但安全性不高NAT(network address transition)模式:虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP地址进行转换。虚拟机通过共享主机IP可以访问到外部网络,但外部网络无法访问到虚拟机仅主机模式:虚

2022-07-08 11:00:12 787 1

原创 C++笔记1(数组,冒泡排序,二维数组,函数,指针,结构体)

3、一维数组数组名用途可以统计整个数组在内存中的长度可以获取数组在内存中的首地址4、案例:五只小猪称体重5、 案例:数组元素逆置二、冒泡排序一、二、规律三、二维数组1、二维数组的定义方式3、案例四、函数1、作用将一段经常使用的代码封装在一起,减少重复代码,一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能2、定义3、值传递函数调用时实参将数值传入给形参值传递时,如果形参发生改变,并不会影响实参4、常见样式无参无返有参无返无参有返

2022-07-04 11:13:21 500

原创 JavaScript算法题(移除元素)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝int len = re

2022-06-29 20:18:39 101

原创 数据结构1(数据结构这门科目的含义,数据,数据元素,数据项,数据对象,数据对象和数据元素,数据结构的含义,数据结构包括的内容,逻辑结构,逻辑结构的种类,物理结构(存储结构),存储结构的种类,两者关系)

1、数据结构是一门研究非数值计算的程序设计中的计算机的操作对象以及他们之间的关系和操作的学科1、数据元素——组成数据的基本单位2、数据对象——性质相同的数据元素的集合逻辑结构,物理结构(存储结构),运算和实现...

2022-06-29 14:35:01 456

原创 JavaScript算法题(有效的括号)

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true提示:1 ...

2022-06-05 09:53:10 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除