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

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

时间:2023-05-05 22:11:06浏览次数:42  
标签:总结 知识点 ACK 数据 Repartition 偏移量 Coalesce 超强 上传

【博学谷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的迭代

标签:总结,知识点,ACK,数据,Repartition,偏移量,Coalesce,超强,上传
From: https://www.cnblogs.com/neilniu/p/17375520.html

相关文章

  • 4.5每日总结
    今天学习了HTML页面的刷新。<ahref="javascript:location.reload();">点击重新载入页面</a><ahref="javascript:history.go(0);">点击重新载入页面</a><ahref="javascript:location=location;">点击重新载入页面</a><ahref="j......
  • 5.5每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......
  • DOM操作----总结
     查找方式一:varobj=document.getElementById(id);varobj=document.getElementById('d1');obj.innerHTML='hellokitty';---innerHTML属性:可以读或者写一个节点的html内容。varobj2=document.getElementById('username');obj2.value='abc�......
  • C++ STL容器总结
    https://www.zhihu.com/question/270017615/answer/2951304955作者:linux链接:https://www.zhihu.com/question/270017615/answer/2951304955来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1什么是STL?STL(StandardTemplateLibrary),即标准模板库......
  • 每日总结-23.5.5
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......
  • Docker(容器)理论总结
    一.什么是Dockerhttps://www.docker.com/Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口2.Docker解决依......
  • 每日总结 5.5
    今天学习了HTML页面的刷新。<ahref="javascript:location.reload();">点击重新载入页面</a><ahref="javascript:history.go(0);">点击重新载入页面</a><ahref="javascript:location=location;">点击重新载入页面</a><ahref="j......
  • 每日总结2023-05-04
    Servlet获取参数值使用request.getParameter(“参数名”),返回结果为String,若需要其他数据类型需要用Integer,Double等包装类进行类型转换例如:publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException......
  • 每日总结2023-05-05
    Android加载界面  activity_main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"......
  • RestHighLevelClient 使用总结
    .index接口--新增/更新索引,内容更新是覆盖式的.update接口--更新索引,支持局部字段的更新,相对.index接口相比,减少了没有必要的字段更新 相关文档:https://zhuanlan.zhihu.com/p/551414799......