推荐阅读文章列表:大数据开发面试笔记V4.0   ||   面试聊数仓第一季  ||   小白大数据学习路线 一、前言京东2024届校园招聘面向应届生开放8000+岗位!!!冲起来,兄弟们,我帮大家整理好了大数据开发的高频面试题,希望对你有用!!!二、高频面试题总结 1. clickhouse的写入和读取为什么快写入:ClickHouse采用类LSM Tree的结构,数据写入后定期在后台Compaction,而且, ClickHouse在数据导入时全部是顺序写入,写入后数据段不可更改,在后台 compaction 时也是多个段 合并排序后写回磁盘。读取:本质就是利用优秀的存储引擎来减少磁盘IO对性能的影响,比如mergeTree、ReplacingMergeTree等,同时ClickHouse在将数据写入磁盘前,会进行预排序,以保证数据在磁盘上是有序的,在实现范围查找时可以将随机读变成顺序读,从而有效提高IO效率。另外,压缩可以减少写入和读取的数据量,从而减少IO的时间2. hbase中rowkey的设计原则是什么,如何解决热点现象设计原则:长度原则散列原则唯一原则热点现象:预分区+rowkey设计3. kafka的副本机制Kafka有主题的概念,每个主题又分为若干个分区。副本的概念是在分区层级下定义的,每个分区配置有若干个副本4. hdfs为什么是128M一块首先解释为什么不能设置太大,也不能设置太小?如果块设置过大,一方面,从磁盘传输数据的时间会明显大于寻址时间,导致程序在处理这块数据时,变得非常慢;另一方面,mapreduce中的map任务通常一次只处理一个块中的数据,如果块过大运行速度也会很慢。如果块设置过小,一方面存放大量小文件会占用NameNode中大量内存来存储元数据,而NameNode的内存是有限的,不可取;另一方面文件块过小,寻址时间增大,导致程序一直在找block的开始位置。再解释为什么设置为128m?HDFS中平均寻址时间大概为10ms;经过前人的大量测试发现,寻址时间为传输时间的1%时,为最佳状态;所以最佳传输时间为10ms/0.01=1000ms=1s目前磁盘的传输速率普遍为100MB/s;计算出最佳block大小:100MB/s x 1s = 100MB所以我们设定block大小为128MB5. Hive的数据存储格式有哪些,优缺点TextFile行存储,优点:数据操作方便,直接使用put上传数据文件,并且可以直接使用cat 查看HDFS上的文件内容;缺点:直接存储文件,数据量级大,磁盘开销大。SequenceFile行存储,优点:可压缩、可分割,优化磁盘利用率和I/O;缺点:含有键值对的二进制文件,数据量级大,对于Hadoop生态系统之外的工具不适用,需要通过text文件转化加载。rcfile行列式存储,优点:可压缩、高效的列存取、查询效率较高;缺点:读取全量数据性能低(扫描的数据块多效率低 )。orcfile列式存储,优点:压缩快、快速列存取、效率比rcfile高,上层presto查询引擎和orc格式兼容性较好;缺点:查询引擎不支持 impala 只能用hive查询数据。parquet列存储,优点:支持多种查询引擎。6. udf函数的分类udf、udaf、udtf7. MapReduce的执行过程 请阅读之前的文章8. flink和spark的区别是什么 请阅读之前的文章9. hbase的特点和底层,和mysql有什么区别HBase主要包括region server和master,region server主要用于region的管理,而master主要用于管理region server,另外还有zookeeper和hdfs,zookeeper主要是用来保证master的高可用,hdfs提供存储服务。hbase是一个数据库,而hive一般用于构建数据仓库hbase可以看做是一个存储框架,而hive是一款分析框架hbase的查询延迟比较低,常用于在线实时的业务,而hive常用于离线的业务10. flink有哪些算子map、flatMap、filter、keyBy、reduce、union、split、connect等11. flink的窗口函数滚动窗口Tumbling Windows滑动窗口Sliding Windows会话窗口Session Windows12. flink的精准一次性如何保证的checkpoint算法13. kafka是如何保证数据不丢失和不重复的,从生产者和消费者考虑保证数据不丢失:生产者端:producer发送数据到kafka的时候,当kafka接收到数据之后,需要向producer发送ack确认收到,如果producer接收到ack,才会进行下一轮的发送,否则重新发送数据....【大数据开发面试笔记V4.0含所有答案】消费者端:消费者消费数据的时候会不断提交offset,就是消费数据的偏移量,以免挂了,下次可以从上次消费结束的位置继续消费....【大数据开发面试笔记V4.0含所有答案】保证数据不重复:问题:当我们把ack级别设置为-1之后,假设leader收到数据并且同步ISR队列之后,在返回ack之前leader挂掉了,那么producer端就会认为数据发送失败,再次重新发送,那么此时集群就会收到重复的数据,这样在生产环境中显然是有问题的【大数据开发面试笔记V4.0含所有答案】14. 数据倾斜请阅读之前的文章15. zookeper的leader选举机制,常见的一些应用场景,举例说明 zookeeper刚启动的时候:投票过半数时,服务器id大的胜出我举个例子吧,假设有3台服务器,服务器1先启动,此时只有它一台服务器启动了,没有任何服务器可以进行通信,因此处于Looking状态,紧接着服务器2启动,它就会和1进行通信,交换选举结果,此时id较大的2胜出,并且满足半数以上的服务器同意选举2,所以2就成为了leader,最后服务器3启动,虽然自己的id大一些,但是前面已经选出了leader,因此自己就成为了follower
点赞 12
评论 0
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-29 11:57
投递浪潮等公司10个岗位
点赞 评论 收藏
分享
苍蓝星上艾露:这简历。。。可以试试我写的开源简历优化工具https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务