【博学谷学习记录】超强总结,用心分享 | 知识点总结2

【博学谷IT技术支持】

请简述HDFS上传文件的过程

1. 客户端将文件分成固定大小的block(默认128MB)
2. 客户端与NameNode通信,请求上传文件,并获取上传目标节点的信息
3. 客户端将第一个数据块上传到目标节点,并告知NameNode该节点上存储的数据块信息
4. 目标节点将数据块写入本地磁盘,直到所有数据块上传完成
5. 客户端继续上传下一个数据块,直到所有的数据块上传完成
6. 客户端告知NameNode上传完成,NameNode更新文件元数据信息
7. 如果上传的文件需要备份,则根据副本设置,将文件复制到其他节点上
8. 客户端收到上传成功的信息,并结束上传过程

hive

数据仓库

主要特征:

  • 面向主题的
  • 集成的
  • 稳定的
  • 时变的

数仓和数据库的区别

OLTP: On-Line Transaction Processing 联机事务处理过程
OLAP: On-Line Analytical Processing 联机分析处理

数据库的数据是面向业务和客户的(OLTP),数据库是为了企业活下来
数据仓库是面向分析(OLAP),面向大数据工程师,数据仓库是让企业更好的活

请简述kafka如何保证数据不丢失

 生产者如何保证数据不丢失: ACK的校准确认机制
0:当ACK的确认机制为0的时候,表示生产者只管发送数据即可,并不关心此数据是否已经被kafka的接收完成了,不去接收返回检验码
1:当ACK的确认机制为1的时候,表示生产者需要等待对应接受分片上的主副本返回ACK确认信息,认为数据发送成功
-1(all): 当ACK的确认机制为-1的时候,表示生产者需要保证分片上的每一个副本都接收到消息,并返回确认码 认为数据发送成功

broker端解决方案
1)采用副本机制来保证,副本越多,数据越安全
2)生产端ACK的校验码为-1

消费端:基于消息的偏移量
1)当消费端启动后,首先会询问Broker端,对应监听Topic上次消费的那个偏移量
2)broker端会根据消费者对应消费者组编号,去查询对应这个组上次消费这个topic到了哪个偏移量
3)如果没有找到偏移量,认为第一次来,让其从当前位置(默认)开始消费,设置偏移量为0,如果找到偏移量,从这个偏移量开始往后,进行消费即可
4) 消费者开始消费数据,在消费过程中,消费端可以选择自动或手动方式提交消费到那个偏移量,然后broker负责记录即可,通过这套流程可以发现,数据绝对不会出现丢失的问题,但是会存在重复消费的问题,因为消费端如过提交偏移量不及时,而且宕机之后,可能会发生

Repartition 和 Coalesce 关系与区别

Repartition和Coalesce 都是Spark用来改变数据分区的操作,但是它们之间有一些区别

1.Repartition是通过将数据进行shuffle来进行分区的重新分配, 而Coalesce则是通过合并少数的分区来实现,不会进行shuffle操作,因此Coalesce操作的效率比Repartition高

2. Repartition可以增加或减少分区数量,而Coalesce只能减少分区数量,不能增加分区数量

3. Repartition可以在任意时刻使用, 而Coalesce只能用于减少分区操作时, 因为它不会进行shuffle操作, 无法增加分区

注意:如果使用Coalesce操作时分区数据不合理, 可能会导致数据倾斜等问题

请简述Spark是如何做内存迭代计算的

1. DAG基于宽表依赖换分为多个State(阶段)
2. 阶段内为窄依赖,可以组成PiPLine
3. 一个PipLine可以由一个Task所处理(一个线程),即每条PipLine的处理均是各自的线程处理,即内存中完成了PipLine的迭代
posted @ 2023-05-05 22:04  牛牛牛牛牛牛牛牛  阅读(9)  评论(0编辑  收藏  举报