自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雷恩Layne

和大家分享知识,一起成长,共同进步,让我们越来越棒

  • 博客(102)
  • 资源 (1)
  • 收藏
  • 关注

原创 详解LZ77字典编码压缩和解压缩流程(典型的压缩算法)

字典编码本质上是将在字典中出现过的字符串使用一个索引值代替,以此来达到压缩目的。基于字典的压缩算法有很多,LZ77和LZ78是最原始的两个算法,后者是前者的变体,原理基本上相似。本文对LZ77字典编码的压缩和解压缩流程进行介绍。...

2022-07-16 14:41:46 10191 3

原创 【深入浅出flink】第16篇:一篇文章搞懂flink中的状态、状态类型、状态缩放(rescale)和Key Group、状态后端(State backend)

我们知道,Flink的一个算子可能会有多个子任务,每个子任务可能分布在不同的实例(即slot)上,我们可以把Flink的状态理解为某个算子的子任务在其当前实例上的一个变量,该变量记录了流过当前实例算子的历史记录产生的结果。当新数据记录流入时,我们需要结合该结果(即状态,State)来进行计算。

2022-02-04 16:48:12 2454

原创 【深入浅出flink】第15篇:flink第一个窗口的起始点和窗口的偏移量,你知道怎么计算吗?

通常,我们通过dataStream.timeWindow或在dataStream.window传入一个窗口分配器来定义一个窗口。那么,第一个窗口的起点是什么,窗口的偏移量又是什么?假如,将第一个窗口的起点记为start,窗口大小为size,那么第一个窗口的范围是[start,start+size),后面的窗口范围也可以定下来,在flink中是怎么算的呢?

2022-02-02 13:56:30 2564

原创 【深入浅出flink】第14篇:kafka分区数与flink算子并行度导致Watermark不触发问题,大多数大数据开发者都会遇到的问题

场景描述:flink消费分区有三个,其中第一个分区有数据,另外两个分区无数据。消费kafka分区的flink算子并行度为3,三个子任务分别消费kafka的分区,导致Watermark机制失效。

2022-01-30 14:48:47 4390 2

原创 【深入浅出flink】第13篇:从源码解读flink中Watermark的周期性和间断式生成方式

我们通常通过DataStream的assignTimestampsAndWatermarks方法引入Watermark,assignTimestampsAndWatermarks方法中要求传入的接口有两种,一种是AssignerWithPeriodicWatermarks(周期性生成Watermark的时间戳分配器),另一中是AssignerWithPunctuatedWatermarks(间断式生成Watermark的时间戳分配器),它们都是TimestampAssigner(时间戳分配器)接口的子接口。

2022-01-27 20:36:57 1917

原创 【深入浅出flink】第12篇:多图全面剖析flink中的时间语义和Watermark,面试官再也难不倒我了

流式数据处理最大的特点是数据具有时间属性特征,Flink根据时间产生的位置不同,将时间区分为三种概念:数据生成时间(Event_time)、事件接入时间(Ingestion_time)、事件处理时间(Processing_time)。那么此时出现一个问题,一旦出现乱序,如果只根据eventTime决定window的运行,我们不能明确数据是否全部到位,但又不能无限期的等下去,此时必须要有个机制来保证一个特定的时间后,必须触发window去进行计算了,这个特别的机制,就是Watermark。

2022-01-23 17:04:51 2254 1

原创 【深入浅出flink】第11篇:从源码层面剖析flink窗口计算中的Evictor(移除器)

Evictor 主要用来遍历窗口中的元素列表,并决定最先进入窗口的多少个元素需要被移除。剩余的元素会交给用户指定的函数进行窗口的计算。如果没有 Evictor 的话,窗口中的所有元素会一起交给Windowfunction进行计算。

2022-01-23 13:28:43 1353

原创 【深入浅出flink】第10篇:聊聊flink窗口计算的触发器(Trigger)

Trigger(触发器)决定了什么时候窗口准备就绪了,一旦窗口准备就绪就可以使用WindowFunction(窗口计算操作)进行计算。每一个 WindowAssigner(窗口分配器) 都会有一个默认的Trigger。如果默认的Trigger不满足用户的需求,用户可以自定义Trigger。

2022-01-17 20:59:21 6676 1

原创 【深入浅出flink】第9篇:详细解读flink中GlobalWindows、window、windowAll的区别与联系

刚学习flink的同学可能会有疑惑,GlobalWindows、window、windowAll到底有什么关系?GlobalWindows和windowAll的并行度都是1吗?window和windowAll的区别是什么?看了这篇文章,你将完全明白它们之间的区别与联系。

2022-01-16 10:38:10 5923 1

原创 【深入浅出flink】第8篇:一篇文章搞懂flink window中的所有内容,保证你完全明白window的分类、window的组成以及window API

Flink支持多种窗口类型,按照驱动类型分为:时间驱动的Time Window(如每30秒钟)和数据驱动的Count Window(如每100个事件)。按照窗口的滚动方式又可以分成:滚动窗口(Tumbling Window,无重叠),滑动窗口(Sliding Window,有重叠)和会话窗口(Session Window,活动间隙)。按照当前流有没有通过keyBy分区,分为Keyed Window和Non Keyed Window。另外,还有全局窗口(global windows)和自定义出窗口。

2022-01-15 17:03:03 1951

原创 【深入浅出flink】第7篇:从原理剖析flink中所有的重分区方式keyBy、broadcast、rebalance、rescale、shuffle、global、partitionCustom

flink中的重分区算子除了keyBy以外,还有broadcast、rebalance、shuffle、rescale、global、partitionCustom等多种算子,它们的分区方式各不相同。需要注意的是,这些算子中除了keyBy能将DataStream转化为KeyedStream外,其它重分区算子均不会改变Stream的类型,现在就让我们来一探究竟吧!

2022-01-14 21:25:01 7417 1

原创 【深入浅出flink】第6篇:详解flink中Text Sink、Csv Sink、Socket Sink、Kafka Sink、Redis Sink、ES Sink,以及万能的UDF Sink

Sink 用来消费 DataStream数据的。Flink提供了很多预置的Sink方法,比如Text Sink、Csv Sink、Socket Sink、Kafka Sink、Redis Sink、ES Sink。当现有的Sink不能满足需求时,用户也可以实现自定义sink,用来解决复杂需求。

2022-01-12 20:45:40 2663

原创 【深入浅出flink】第5篇:详细梳理flink中常见的dataSteam算子,transformation操作全靠它们,满足你所有的业务需求

本文梳理了常见Transformation操作,几乎平时用到的99%的算子都总结了出来,如果你能把这些算子吃透,那么恭喜你成功进阶DataStream编程。

2022-01-09 16:14:46 1850 1

原创 【深入浅出flink】第4篇:flink常见的并行度和多并行度Source,你掌握了多少?

flink提供了大量的已经实现好的source方法,也可以自定义source。通过实现sourceFunction接口来自定义无并行度的source,通过实现ParallelSourceFunction 接口 或 继承RichParallelSourceFunction 来自定义有并行度的source。

2022-01-08 21:14:18 4706 1

原创 【深入浅出flink】第3篇:多图讲解flink核心概念(通俗易懂)Job、Task、SubTask、Slot、Slotsharing、Parallelism、Operator Chains

本文是理解flink整个架构的核心,是最基础也是必须要掌握的知识,只有完全理解了它们,你才会在以后学习flink时游刃有余,才能更好的进阶flink高阶知识。

2022-01-07 23:11:26 5928 6

原创 【深入浅出flink】第2篇:肝了一个小时的图,完虐flink运行时的四大核心组件和运行流程

文章前半部分描述Flink运行时的四大核心组件,大家在对四个组件有个印象后,再通过一张完整的图来讲解这四大组件是如何协同工作的,即Flink任务分布式的运行流程。

2022-01-07 09:00:00 3227 1

原创 【深入浅出flink】第1篇:什么是flink?和Spark Streaming有什么区别?(开篇之作)

Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态的计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。

2022-01-06 21:33:49 1688

原创 聊聊Java类型擦除、Flink中使用Lambda表达式丢失信息和Flink类型暗示机制

最近在学Flink时发现,由于Java类型擦除的存在,导致Flink中使用Lambda表达式时,无法检测出泛型的类型,需要使用Flink类型暗示(type hint)机制才能解决。

2021-12-26 21:27:02 2056 1

原创 【所有错误已解决】client JDBC连接hbase、phoenix失败的所有错误都在这里!

这里是我遇到的hbase、phoenix的所有错误,均已找到解决方法。错误一:java.lang.NoSuchMethodError报错信息如下:(1)第一种错误Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosKeyTab(Ljavax/security/auth/Subject;)Z at o

2021-10-07 20:36:40 6294

原创 15道Flume大厂高频面试题,大数据Flume看它就够了!

文章目录1. Flume的定义2. Flume基础架构3. Flume Agent内部原理4. ExecSource、Spooldir Source、Taildir Source的区别5. Flume事务机制6. Flume常用拓扑结构6.1 简单串联6.2 复制和多路复用6.3 负载均衡和故障转移6.4 聚合功能7. 你是如何实现Flume数据传输的监控的8. 你公司采用的Source类型是什么9. Flume参数调优10. Flume采集数据会丢失吗?11. Flume与Kafka的选取12. 数据怎么

2021-09-26 16:43:24 2468

原创 31道Hive大厂高频面试题,学会了进大厂不是梦,建议收藏!

文章目录1. 介绍一下什么是Hive2. Hive的架构原理3. Hive的HSQL转换为MapReduce的过程?4. Hive和RDBMS有什么异同/hive和传统数据库之间的区别5. HiveSQL语句不会转化为MapReduce作业的情况6. 请简单介绍一下Hive的本地模式7. 你使用过哪些 Hive 函数8. 列转行和行转列函数有哪些9. 介绍一下Hive中的窗口函数10. Hive内部表、外部表、分区表、分桶表的区别,以及各自的使用场景11. Order By,Sort By,Distrbu

2021-09-26 16:26:16 7483

原创 ❤️爆肝三万字,40道Kafka大厂高频面试题,涨薪全靠它!

文章目录1. kafka是什么?2. 请说明Kafka的基础架构3. Kafka常用指令4. Kafka的文件存储机制5. Kafka新建的分区会在哪个目录下创建?6. Kafka的分区策略7. kafka的数据可靠性保证8. Kafka的Exactly Once语义9. 消息是采用Pull模式,还是Push模式?10. 分区分配策略/消费者究竟消费哪个分区的数据11. Kafka的那些设计让它有如此高的性能?12. Zookeeper在Kafka中的作用13. 当你使用kafka-topics.sh创建(

2021-09-26 16:09:40 2745

原创 五万字,57道hadoop大厂高频面试题,每一字都细心打磨,强烈建议收藏!

文章目录1. 简述hadoop1与hadoop2 的架构异同2. 请介绍一下hadoop的HDFS3. Hadoop的运行模式有哪些4. Hadoop生态圈的组件并做简要描述5. 解释“hadoop”和“hadoop生态系统”两个概念6. 请介绍HDFS的组成架构7. HDFS的文件块大小有什么影响8. HDFS的写(上传)数据流程9. 机架感知(副本存储节点选择策略)10. HDFS的读数据流程11. NN 和 2NN 工作机制(元数据持久化机制)12. Fsimage 和 Edits中的内容13. Na

2021-09-25 17:10:17 13769 5

原创 一篇文章搞懂Mysql中的行锁、表锁、悲观锁、乐观锁、活锁、死锁、封锁协议、MVCC锁

文章目录一、Mysql中的行锁和表锁1.1 锁的粒度1.2 锁的模式(Lock Mode)1.3 行锁的分类1.4 何时加锁二、悲观锁和乐观锁三、活锁和死锁四、三级封锁协议五、MVCC机制一、Mysql中的行锁和表锁这里主要参考:https://mp.weixin.qq.com/s/Wq8-fdH_WR-2lvf-Lut5Yw1.1 锁的粒度MySQL 源码中定义了两种锁的粒度,分别是表锁和行锁。/** Lock types */#define LOCK_TABLE 16 /*!<

2021-09-25 16:06:58 2320

原创 【已解决】superset创建admin用户失败:Error! User already exists user 或 AttributeError: ‘NoneType‘

superset创建admin用户失败报错:Error! User already exists user 或者 AttributeError: ‘NoneType’ object has no attribute ‘auth_type’ 解决方法错误描述安装superset后发现admin用户登录不上去,执行flask fab create-admin报如下错误:(superset) [layne@hadoop102 bin]$ flask fab create-adminUsername [ad

2021-08-19 21:10:30 6236 1

原创 关于Spark默认并行度spark.default.parallelism的理解

spark.default.parallelism是指RDD任务的默认并行度,Spark中所谓的并行度是指RDD中的分区数,即RDD中的Task数。当初始RDD没有设置分区数(numPartitions或numSlice)时,则分区数采用spark.default.parallelism的取值。Spark作业并行度的设置代码如下:val conf = new SparkConf() .set("spark.default.parallelism", "500")对于reduceByKey和jo

2021-08-04 19:47:40 14416

原创 从源码角度分区Yarn Cluster任务提交流程

Yarn Cluster任务提交分为三个部分:用户编写好的Spark应用程序提交到Yarn上(截止到ApplicationMaster启动Driver那一步)Driver对用户的应用程序进行App->Job->Stage->Task划分Driver分发Task到Executor上首先,我将从源码部分一步一步解释上面的具体实现。然后,把对上面三部分进行转化为文字描述,方便面试时回答。需要注意的是,跟踪源码的时候添加一下依赖:<dependency> &l

2021-08-02 19:21:58 396

原创 【已解决】Exception in thread “main“ java.lang.InternalError: Malformed class name

java.lang.InternalError: Malformed class name解决方法最近在写Spark程序时,出现如下错误:Exception in thread "main" java.lang.InternalError: Malformed class name at java.lang.Class.getSimpleName(Class.java:1330) at org.apache.spark.sql.execution.aggregate.ScalaUDAF.toStri

2021-07-22 19:37:38 1839

原创 基于SA-Conv-CTC/Attention端到端语音识别模型的基本原理、实现方法和主要流程

文章目录摘要1. 引言2. 模型描述2.1 混合编码器2.2 位置编码器2.3 SA-Conv-CTC/Attention架构2.4 带有SA-LM的混合解码器3. 实验3.1 数据集介绍3.2 实验细节3.3 评价准则3.4 实验结果4. 结论摘要我们知道,传统的语音识别系统分为三大组件,分别是词汇字典、声学模型和语言模型,这使得我们不得不单独训练声学和语音模型[1]。近年来,端到端(E2E)语音识别系统越来越受欢迎,与传统的语音识别系统不同,E2E语音识别系统直接将输入的语音转换成字符或单词,只基于

2021-07-20 16:25:41 2294 3

原创 使用yolov5训练自动驾驶目标检测数据集BDD100K

文章目录一、什么是BDD100K二、数据预处理三、环境配置四、修改模型结构五、迁移学习六、训练BDD100K七、评估性能八、结语一、什么是BDD100KBDD100K是伯克利发布的开放式驾驶视频数据集,其中包含10万个视频和10个任务(因为把交通灯的颜色也区分了出来,实际上是13类分类任务),目的是方便评估自动驾驶图像识别算法的的进展。该数据集具有地理,环境和天气多样性,从而能让模型能够识别多种场景,具备更多的泛化能力。由于硬件限制,我只里训练其中的图片数据,数据集按Train、Valid、Test三

2021-07-20 14:40:32 15389 38

原创 Hive动态分区多种插入方式总结

首先看官方文档的一段描述:点击直达链接In the dynamic partition inserts, users can give partial partition specifications, which means just specifying the list of partition column names in the PARTITION clause. The column values are optional. If a partition column value is gi

2021-07-03 08:51:19 8060

原创 【已解决】Hive常见错误解决方案

在学习和工作过程中,遇到的一些Hive常见错误,在此记录下来。文章目录错误1:guava包冲突错误错误2:Hive启动报错错误3:执行Hive命令报错错误4:使用beeline启动报错错误5:Hive配置tez报错错误1:guava包冲突错误Hive3启动报错,Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditio[wxler@wxler1 hive]$ bin/schem

2021-05-09 11:42:41 10327 9

原创 为什么Hive中的group by后面不能使用字段别名?

为什么Hive中的group by后面不能使用字段别名呢?看了这篇文章你将一目了然。文章目录1. 案例说明2. 分析原因3. 解决办法4. 执行效率5. 总结1. 案例说明我们以一个例子来说明。(1)数据创建business.txt,内容如下:jack,2017-01-01,10tony,2017-01-02,15jack,2017-02-03,23tony,2017-01-04,29jack,2017-01-05,46jack,2017-04-06,42tony,2017-01-

2021-04-19 15:22:22 2913 2

原创 hadoop完全分布式集群搭建

强烈建议先看一遍hadoop伪分布式集群搭建,然后再按本文的hadoop完全分布式集群搭建进行配置。集群规划四台服务器,分别为layne1~4,分布如下:layne1作为NameNode服务器layne2作为SecondaryNameNode和DataNode服务器layne3、layne4作为DataNode服务器HDFS完全分布式搭建详细步骤如下:1、四台服务器之间互相均可以免密登录可参考我之前的博客多台服务之间免密登陆2、四台服务器JDK安装并配置环境变量可参考rpm安装j

2021-03-21 14:15:34 797

原创 hadoop伪分布式集群搭建

本文步骤较多,请细心查看。基础设施基础设施环境如下:jdk 1.7+(提前设置好环境变量)ssh自己和自己之间进行免密登陆,如在layne1上执行ssh layne1时间同步设置本机ip设置主机名可参考Linux切换运行级别、关闭防火墙、禁用selinux、关闭sshd、时间同步、修改时区、拍摄快照、克隆操作、修改语言环境。另外,不得不提Linux系统远程执行和远程登陆的区别:远程执行:不需要用户交互,而是用户直接给出一个命令,直接在远程执行,不会加载 /etc/profile.

2021-03-21 13:48:59 1318

原创 ZooKeeper实战篇之zk集群搭建、zkCli.sh操作、权限控制ACL、ZooKeeper JavaAPI使用

在看了史上最全的Zookeeper原理详解(万字长文),了解Zookeeper的原理后,你是不是蠢蠢欲动想着手实践呢?这篇文章将手把手教你在Linux上搭建ZooKeeper集群,并调用相关API实现自己的Zookeeper应用。文章目录1. Linux上搭建ZooKeeper集群1.1 多台服务器之间免密登录1.2 ZooKeeper集群搭建2. zkCli.sh客户端操作2.1 打开客户端2.2 创建节点2.3 读取节点2.4 更新节点2.5 删除节点3. Zookeeper 权限控制 ACL3.1

2021-03-14 15:44:37 1439

原创 史上最全的Zookeeper原理详解(万字长文)

我参考了几十篇文章,总结了里面最重要的部分,并增加了许多自己的思考和理解,完成了这篇博客。我认为这篇博客很全,里面的内容也通俗易懂,想要了解Zookeeper的原理,本文应该就够了。另外,所有的参考文章链接已放到本文末尾,有需要的读者可自行查阅。文章目录1. ZooKeeper 介绍1.1 什么是Zookeeper1.2 使用ZooKeeper的开源项目1.3 ZooKeeper的三种运行模式2. CAP和BASE理论3. Zookeeper的特点4. 一致性协议之 ZAB4.1 ZAB 中的三个角色4.

2021-03-10 00:08:19 11453 8

原创 idea创建maven项目过慢终极解决方案

通过idea创建maven项目的时候,需要等好长时间才能创建完毕,我摸索了很久,可以通过以下方式加快maven项目创建的速度。使用阿里云镜像在maven的conf\settings.xml中新加一个阿里云的镜像地址:<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun mave

2021-03-04 23:19:47 11259 5

原创 【已解决】OpenSSL SSL_connect: Connection was reset in connection to github.com:443

Github报错OpenSSL SSL_connect: Connection was reset in connection to github.com:443终极解决方案今天在使用git命令进行push和pull时,出现如下报错:fatal: unable to access 'https://github.com/wxler/test.git/': OpenSSL SSL_connect: Connection was reset in connection to github.com:443

2021-03-01 13:28:57 133614 78

原创 Notepad++运行java代码,并设置自动格式化Java代码

文章目录Notepad++运行java代码Notepad++自动格式化Java代码Notepad++运行java代码1、下载插件2、在弹出的显示插件的窗口中勾上NppExec这个插件,再点install(因为我这里已经安装完了所以没有显示这个插件出来)如果显示安装失败,百度或Google上搜索NppExec插件。 在下载的压缩包里,把里面的文件夹的.dll文件解压到Notepad++文件夹下的plugins中。(注意,新建一个NppExec文件夹)3、安装后重启Notepad++,就能在No

2021-02-28 14:36:17 2099

河南省ACM程序设计大赛历年真题

史上最全的河南省ACM程序设计大赛历年真题,从第一届到第十届,准备参加ACM的网友可以作为参考学习

2018-01-30

空空如也

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

TA关注的人

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