自定义博客皮肤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)
  • 收藏
  • 关注

原创 Flink 常见面试题

侧输出可以看作是操作符的一个额外的输出通道,除了主输出流之外,操作符还可以产生一个或多个侧输出流。这些侧输出流可以被路由到不同的下游操作符,用于进一步处理。侧输出是通过 OutputTag 来实现的。OutputTag 是一个类,它用于标记一个特定的侧输出。使用时,你需要为每个侧输出创建一个 OutputTag 实例,并在操作符中使用它来指定数据流向哪个侧输出。

2024-12-02 08:18:37 1891

原创 Time+Watermark

假设,你正在去往地下停车场的路上,并且打算用手机点一份外卖。也就是说,实际开发中希望基于事件时间来处理数据,但因为数据可能因为网络延迟等原因,出现了乱序,按照事件时间处理起来有难度!但是A用户的网络不太稳定,回传日志延迟了,导致我们在服务端先接受到B用户的消息,然后再接受到A用户的消息,消息乱序了。EventTime事件时间,因为bug真真正正产生的时间就是事件时间,只有事件时间才能真正反映/代表事件的本质!应该被统计,因为该数据的真真正正的产生时间为11点59分,即该数据的事件时间为11点59分,

2024-11-25 20:04:29 790

原创 Java面试题

1.先计算出key对应的hashcode2.通过hash(key)%len得到要插入的数组节点(哈希表的数组的初始长度为16),3.插入:如果key的hashCode重复(即:数组的下标重复),则将新的key和旧的key放到链表中。如果key值一样,进行数据覆盖:(JDK7是头插法;JDK8是尾插法);ps:若链表长度大于8 且容量小于64 会进行扩容;若链表长度大于8 且数组长度大于等于64,会转化为红黑树(提高定位元素的速度);若红黑树节点个数小于6,则将红黑树转为链表。

2024-11-21 19:38:21 747

原创 多线程的四种创建方式

newCachedThreadPool创建的线程池将corePoolSize设置为0,将maximumPoolSize设置为Integer.MAX_VALUE,它使用的是SynchronousQueue,也就是说来了任务就创建线程运行,当线程空闲超过60秒,就销毁线程。线程是稀缺资源,如果无限制的创建,不仅会销耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。如果允许任务丢失,这是最好的一种策略。执行很多短期异步任务,线程池根据需要创建新线程,但在先前构建的线程可用时将重用它们。

2024-11-18 19:31:32 1236

原创 升级浏览器

一般我们的浏览器搜索的时候,基本都会有很多的广告,妨碍我们查找自己想要的资料,只要进行如下操作就可去除广告。我们在网页搜索自己想要的数据进行复制的大多时候都会进行收费导致自己不能复制到自己想要的内容。1.跟上面的一样打开你自己的浏览器,点击右上角,点击拓展。1.打开你自己的浏览器,点击右上角,点击拓展。1.打开你自己的浏览器,点击右上角,点击拓展。3.进入你想复制内容的页面里,点击右上角的。下载完这个插件需要登陆一下微信。2.进入到获取拓展页面里面。2.进入到获取拓展页面里面。2.进入到获取拓展页面里面。

2024-11-14 18:40:14 575 1

原创 kafka 生产经验——数据积压(消费者如何提高吞吐量)

bit --> byte --> kb -->mb -->gb --> tb --> pb --> eb -> zb -->yb

2024-11-12 19:45:04 470

原创 kafka生产经验——消费者事务

Kafka消费端将消费过程和提交offset 过程做原子绑定。

2024-11-12 19:43:08 469

原创 kafka面试题解答(三)

消费者组数小于等于分区数,消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费。

2024-11-11 20:17:08 1117

原创 kafka面试题解答(二)

1)Kafka 本身是分布式集群,可以采用分区技术,并行度高2)读数据采用稀疏索引,可以快速定位要消费的数据。(mysql中索引多了之后,写入速度就慢了)3)顺序写磁盘Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端, 为顺序写。,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。4)页缓存 + 零拷贝技术。

2024-11-11 19:36:25 2043

原创 Kafka面试题解答

Follower:由于数据同步的时候先进入Leader,随后同步给Follower,假如Follower挂掉了,Leader和其他的Follower 继续往前存储数据,挂掉的节点从ISR集合中剔除,此时挂掉的Follower又重启了,它会先从上一次挂掉的节点的HW开始同步数据,直到追上最后一个Follower为止,此时会重新回归ISR。kafka中的每一个partition都会有一个Leader,zk可以负责进行Leader的选举,当一个Leader挂掉后,集群可以快速选择新的Leader并继续服务。

2024-11-09 14:09:55 263

原创 如何保证kafka生产者数据可靠性

生产者把数据发送给了Leader,Leader保存成功,应答完毕,此时生产者就以为数据发送成功了,但是此时,Leader挂了,但是Follower 并没有同步数据过来,Follower此时变成了Leader, 此时的Leader就没有Hello这个数据了,数据丢失了。如果分区副本设置为1个(只有一个leader),或者ISR里应答的最小副本数量 ( min.insync.replicas 默认为1)设置为1,和ack=1的效果是一样的,仍然有丢数的风险(leader:0,isr:0)。

2024-11-09 10:43:36 629

原创 kafka是如何处理数据乱序问题的?

1)生产者在发送3请求的时候,发生异常,发生异常需要重新发送,所以排在了后面,在进行落盘的时候,先落盘1,2 ,落盘3的时候发现是4,需要等,等到3出现为止,然后将 3,4 ,5排序,排序后再进行落盘。原因:因为在kafka1.x之后,启用幂等性后,kafka服务端会缓存producer发来的最近5个request的元数据,所以无论如何都会保证最近5个request的数据是有序的。max.in.flight.requests.per.connection=1(不需要考虑是否开启幂等性)

2024-11-09 10:29:55 330

原创 DataFrame和RDD的相互转换

1.将RDD中每条数据转换成Row类型,Spark可以自动将RDD转换成2.自定义Schema转换DataFrame3.指定列名称转换DataFrame 【最简单的一种】

2024-11-07 20:52:51 220

原创 mysql批量删除海量数据

由于要求此表中的数据只保留当天的数据,所以每当在凌晨的某一时刻当其他程序处理完其中的数据后要删除该表中昨天以及以前的数据,使用delete删除表中的上百万条记录时,MySQL删除速度非常缓慢,每一万条记录需要大概4分钟左右,这样删除所有无用数据要达到八个小时以上,这是难以接受的。对比之前的八个小时,大大节省了时间。在删除数据的时候根据不同的场景使用不同的方法,比如说删除表中部分数据、删除表的结构、删除所有记录并重置自增ID、批量删除大量数据等,可以使用delete、truncate、drop等语句。

2024-11-07 20:48:36 883

原创 Spark中的宽窄依赖

2.1窄依赖:父RDD的一个分区的数据只给了子RDD的一个分区 【不用经过Shuffle一对一或者多对一不经过Shuffle,性能相对较快, 但无法实现全局分区、排序、分组等一个Stage内部的计算都是窄依赖的过程,全部在内存中 完成。2.2宽依赖:父RDD的一个分区的数据给了子RDD的多个分区【需要调用Shuffle的分区器来实现】一对多,必须经过Shuffle,性能相对较慢,可以实现全 局分区、排序、分组等Spark的job中按照宽依赖来划分Stage。

2024-11-06 19:20:47 304

原创 面试题:RDD的cache、persist持久化机制和checkpoint检查点机制有什么区别?

persist:当代码中遇到了unpersist或者程序结束,缓存就会被自动清理。- persist:会保留RDD的血脉关系,如果缓存丢失,可以通过血脉进行恢复。- chk:会斩断RDD的血脉关系,不会保留RDD的血脉关系的。- chk:检查点的数据是不会被自动清理的,只能手动删除。- persist:将RDD缓存在内存或者磁盘中。- chk:将RDD的数据存储在文件系统磁盘中。

2024-11-06 19:17:09 415

原创 spark中分区算子

功能:对RDD每个分区的数据进行操作,将每个分区的数据进行map转换,将转换的结果放入新的RDD中。

2024-10-31 19:23:24 187

原创 spark中34个算子

coalesce(根据情况) join( fullOuterJoin / leftOuterJoin / rightOuterJoin)3、哪些算子能触发shuffle过程。

2024-10-31 19:22:00 204

原创 20道FineBI面试题

4. 模板页面已经引用数据集ds1的字段内容,后面将ds1名字改成ds2,模板主体内容会自动变成引用ds2。15. 有时我们希望将模板发送给别人修改,导出模板时需要附带导出内置数据,导出时其实是作为两个文件存在的。17. FineBI可以将FineReport制作的报表挂出,并且可以集成到FineBI制作的仪表板中。3. 模板单元格中,左侧下方有黄色三角形,表示什么意思?1. 可以用来导出数据库明细的报表是哪个图表?11. if(3==3,1,2)结果是什么?14. 以下哪个不属于模板单元格的扩展方向?

2024-10-13 21:56:10 317

原创 什么是拉链表

流水表存放的是一个用户的变更记录,比如在一张流水表中,一天的数据中,会存放一个用户的每条修改记录,但是在拉链表中只有一条记录。和 end_date 两个字段,数据更新时,通过修改 end_date 来设置数据的有效时间。这是拉链表设计时需要注意的一个粒度问题。针对数据仓库设计中表存储数据的方式而定义的,设计表的时候添加 start_date。我们可以使用这张表拿到最新的当天的最新数据以及之前的历史数据。记录一个事物从开始,一直到当前状态的所有变化的信息。表中的记录变化的比例和频率很小。

2024-09-24 18:21:33 195

原创 SQLynx的安装及特点

SQLynx是原生基于Web的SQL编辑器,支持企业的桌面和Web数据库管理。它是适用于所有处理数据的跨平台数据库工具。它支持所有流行的数据库,如MySQLMariaDB、PostgreSQL、 sQLite、Hive、 Impala、 Hadoop 等。1.官网下载:www.sqlynx.com如果已经有用户信息,直接登录,如里没有,需要先注册用户,在右上角有相关的操作。

2024-09-14 09:11:39 1649

原创 Kettle9.1链接mysql报错: Connection failed. Verify all connection parameters and confirm that the appropr

验证所有连接参数,并确认安装了适当的驱动程序。服务器时区值’�й���׼ʱ��’ 无法识别或表示多个时区。如果要使用时区支持,则必须配置服务器或JDBC驱动程序(通过“serverTimezone”配置属性)以使用更具体的时区值。

2024-09-12 20:02:15 1831 1

原创 海豚调度器DolphinScheduler

MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它MasterServer和WorkerServer的健康状态。ZooKeeper服务,系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错。WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。UI系统的前端页面,提供系统的各种可视化操作界面。

2024-09-10 08:44:47 190

原创 HDFS相关概念

第二名称结点是HDFS架构中的一个组成部分,它是用来保存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。(1)数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。(1)在HDFS中,名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog。2.HDFS主要功能组件。

2024-09-09 20:00:52 559 1

原创 MongoDB

依赖管理和项目构建。依赖管理--管理Jar包。项目构建--帮我们创建项目,运行项目,测试项目,编译项目,打包项目。一个项目一般都经历从出生到上线这样一个过程,我们的Maven帮助我们简化步骤。mavan是学命令的。负责上线的同事:编写了一个脚本文件,可以自动的识别本次大家更改的代码,并且自动抽取出来,创建对应的文件夹,并且可以自动上传至服务器,重启服务。使用Ant工具编写的脚本。Ant能够完成的事情,其实就是项目构建。已经属于一个老的技术了。目前比较流行的是Maven。

2024-09-09 19:59:33 360

原创 Flume

flume 其实就是水管 数据起始就是水,将水引入到不同的容器中Sqoop -- 一般用于采集数据库中的数据Flume -- 一般采集我们的日志数据 user.logFlume 其实可以看做一个水管。一头接着水源,一头接着桶,从水源地抽取数据到桶里去。

2024-09-09 19:57:08 297

空空如也

空空如也

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

TA关注的人

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