自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hive和Trino的行转列,列转行的不同之处

split将order_ids拆分成数组,cross join unnest将数组炸裂开,要注意一下两种语法的表名缩写位置。array_agg转为数组,array_distinct去重,array_join将数组用逗号间隔连接成字符串。

2023-06-12 17:34:58 963 1

原创 Spark五种Join策略

数据分析中将两个数据集进行 Join 操作是很常见的场景。在 Spark 的物理计划(physical plan)阶段,Spark 的 JoinSelection 类会根据 Join hints 策略、Join 表的大小、 Join 是等值 Join(equi-join) 还是不等值(non-equi-joins)以及参与 Join 的 key 是否可以排序等条件来选择最终的 Join 策略(join strategies),最后 Spark 会利用选择好的 Join 策略执行最终的计算。

2023-06-08 23:45:53 398

原创 Spark与Hadoop(MR)的比较

所以Spark应运而生,Spark就是在传统的MapReduce 计算框架的基础上,利用其计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的RDD计算模型。Spark和Hadoop的根本差异是多个作业之间的数据通信问题 : Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘。Spark采用fork线程的方式,而Hadoop采用创建新的进程的方式。Spark的缓存机制比HDFS的缓存机制高效。

2023-05-08 23:05:37 127

原创 Kafka高效读写数据

Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁盘,顺序写能到600M/s,而随机写只有100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。尽管持久化到Pagecache上可能会造成宕机丢失数据的情况,但这可以被Kafka的Replication机制解决。如果为了保证这种情况下数据不丢失而强制将 Page Cache 中的数据 Flush 到磁盘,反而会降低性能。

2023-05-08 22:26:51 98

转载 Hadoop namenode HA实现原理

前言:在Hadoop 1.x版本,HDFS集群的NameNode一直存在单点故障问题:集群只存在一个NameNode节点,它维护了HDFS所有的元数据信息,当该节点所在服务器宕机或者服务不可用,整个HDFS集群都将处于不可用状态,极大限制了HDFS在生产环境的应用场景。直到Hadoop 2.0版本才提出了高可用 (High Availability, HA) 解决方案,并且经过多个版本的迭代更新,已经广泛应用于生产环境。解决方案:在同一个HDFS集群,运行两个互为主备的NameNode节点。一台为主Name

2022-05-05 21:58:29 515

原创 端口号汇总

端口号汇总 Hadoop NameNode 8020 Hadoop WebUI 9870 Hadoop DataNode 9866 Hadoop ResourceManger 8088 Kafka 9092 Zookeeper 2181 Flink WebUI ...

2021-11-25 23:28:46 1170

原创 Flink窗口计算(二)

Window Trigger如果想让窗口每隔两分钟就触发一次结果输出呢?PuringTrigger会对窗口里面的状态做一次清理 在第二次输出12:00 -12:05窗口结果的时候是3而不是6,这样可以保障下游的算子接收到的上游处理完成的结果后可以做累加产生正确的结果。...

2021-11-19 22:06:44 964

原创 Flink窗口计算

窗口计算场景:window抽象概念窗口编程接口:Window Assigner:窗口类型:Global Window的特点是会把所有的数据放到一个window里面,它的window没有相应的Trigger触发器,也就是不会切分成不同的一些窗口,窗口触发操作是由用户自己指定,使用尝尽较少,但是前面三种窗口都是基于Global Window的基础之上,添加不同的Trigger实现的。Global Window是前面三种窗口的基础。滑动窗口:No...

2021-11-19 20:26:50 2522

原创 Flink WaterMark

判定迟到时间:watermark在算子之间的传播:每个Operator上有对应的Event-time,这个其实是一个TimeService,这个TimeService标记出来当前算子的一个时钟。watermark最好在Source Operator就进行设置,且最好Source Operator的并行度为1.watermark的生成依赖于事件时间的更新(出现更大的事件时间)watermark生成之后会随着数据(streamElement)...

2021-11-17 19:45:19 1625

原创 Flink中流的转换

2021-11-14 22:20:51 548

原创 Flink算子

基本转换算子(无状态算子):输入相同的情况下输出一定相同map:针对流或列表中的每一个元素,输出一个元素filter:针对流或列表中的每一个元素,输出0个或者1个元素flatmap:针对流或列表中的每一个元素,输出0个,1个或者多个元素mapPartition: 对一个分区中的分区进行转换,结果是一个迭代器,转换前后元素个数可能不同有状态算子:sum/max/min/maxBy/minBy 通称为滚动聚合算子(rolling aggregation)re...

2021-11-12 22:53:19 1046

原创 Flink时间概念

2021-11-11 16:24:09 218

原创 Flink集群部署模式

2021-11-11 16:13:24 387

原创 Flink架构组件JobManager和TaskManager

JobManager和TaskManager交互通过Task对象Actor System是Akka最重要的一个组件。Job Dispatcher负责接收Client提交的JobGraph对象,然后拆分成不同的作业,提交到TaskManager. 这个过程会涉及到Job的分发。standlone模式和yarn模式的ResourceManager是不同的实现。TaskManager启动后会主动向JobManager进行一个rpc远程的Connection注册,Task...

2021-11-11 15:25:55 2585

原创 Flink运行时架构(一)

主从架构:一个JobManager(作业管理器)和多个TaskManager(任务管理器)JobManager进程中包含三种线程;1)ResourceManager(资源管理器),管理TaskManager中的Task Slot(任务插槽)2)Dispatcher(分发器,WebUI) 提价任务和监控集群和任务3)JobMaster 负责管理单个JobGraph的执行,调度任务,将DAG部署到任务管理器TaskManager(任务管理器)1)Task Slot(任务插槽):是...

2021-11-10 21:24:25 1438

原创 MySQL的binlog

MySQ的二进制日志记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,MySQL的二进制日志是事务安全型的。MySQL的二进制日志两个最重要的使用场景:1.MySQL Replication在 Master端开启binlog , Master把它的二进制日志传递给slaves,保证master-slave数据一致性2.数据恢复 通过使用mysqlbinlog工具来恢复数据二进制包括两类文件:二进制日志索引文件(文件名后缀为.index)用来记录所有的二进制文件、二进制日..

2021-11-03 23:18:22 133

原创 日志级别Log4j

左边竖栏是Event Level,右边横栏是LoggerConfig Level。 YES的意思就是这个event可以通过filter,NO的意思就是不能通过filter。 可以看到,INFO级别在Event是无法被ERROR级别的LoggerConfig的filter接受的,所以,INFO信息不回被输出。...

2021-10-27 20:24:57 64

原创 redis小测试二

执行flushall命令也会产生dump.rdb文件,但里面是空的,无意义。redis备份数据时,会fork一个子进程,写时复制技术,主进程和子进程可以共享内存,有差异的内存会单独建副本。 redis备份数据时,不会阻塞主进程,是两个进程,不存在阻塞的说法。...

2021-10-27 10:08:51 61

原创 Redis小测试

redis默认是周期性备份数据(RDB),所以可能会丢失数据,即使是RDB+AOF方式也会存在丢失数据的可能。启动redis-server时如果不声明配置文件,则使用程序中写死的配置信息,安装目录中的redis.conf只是一个配置文件模板。redis6.x并没有增加计算任务的主线程,只是增加了辅助线程,主要用来传递数据的。keys * 命令可以查看当前库下的命令,而不是所有库。幂等性:一次操作和多次操作的结果一样。数仓里面的脚本是幂等的,因为是overwrite覆盖操作...

2021-10-26 21:30:21 66

原创 CDC的种类和区别

2021-10-23 10:43:27 210

原创 Hive知识点

Hive主要由以下3个模块组成:用户接口模块,驱动模块以及元数据模块。用户接口模块包括CLI客户端,Beeline客户端(3.0版本)、Hive网页接口(Hive Web Interface)、JDBC、ODBC、Thrift Server等,用来实现外部对Hive的访问。其中,Thrift Server基于Thrift软件框架开发,它提供Hive的RPC通信接口。驱动模块(Driver)包括编译器,优化器,执行器等,所采用的执行引擎可以是MapReduct、Tez、Spark等。元数据存储

2021-10-21 20:15:13 1012

原创 SparkSql(二)

RDD,DataSet,DataFrame三者之间的相互转换:UDF//向udf中注册自定义函数名和函数的功能spark.udf.register("prefixName",(name: String) => { "Name:" + name})spark.sql("select id,prefixName(name),age from t_user").show()UDAF(3.0新版强类型)spark.udf.register("avgAge",..

2021-09-23 21:15:44 95 1

原创 SparkSql

shark是spark生态环境的组件之一,是基于Hive所开发的工具,它修改了内存管理,物理计划,执行三个模块。并使之能够运行在spark引擎上。shark对hive的依赖严重,比如采用Hive的语法解析器,查询优化器等。SparkSql抛弃原有的shark的代码,汲取了shark的一些优点,如内存列存储(In-Memory Columnar Storage),Hive兼容性等,重新开发了SparkSql代码。数据兼容性方面SparkSqk不但兼容Hive,还可以从RDD,parquet文件..

2021-09-22 23:22:35 52

原创 电脑桌面去除小箭头

方法2方法二:1、可以通过批处理的方式来去掉桌面图标的小箭头。首先我们新建一个记事本,然后在记事本里面输入如下代码,代码可以直接复制如下代码:@echo offcolor 2reg delete HKCR\lnkfile /v IsShortcut /freg delete HKCR\piffile /v IsShortcut /freg delete HKCR\InternetShortcut /v IsShortcut /ftaskkill /f /im explorer

2021-06-16 16:15:11 359

原创 常用dos命令

cd 进入某个目录 tab补全 cd .. 返回上级目录 cd /1.dir 列出当前目录下所有的内容

2021-06-12 21:34:51 32

转载 编译型语言、解释型语言和动态类型语言,静态类型语言以及动态语言

编译型语言和解释型语言1、编译型语言需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,

2021-06-12 18:57:14 424

空空如也

空空如也

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

TA关注的人

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