深圳公司大数据面试题汇总

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 深圳公司大数据面试题汇总

背景

本文为#峰哥读者从设计转行外包数仓,再跳槽到甲方做大数据开发#整理的面试题,他面过深圳大部分的外包和甲方公司,整理了一些面试题,希望能带给大家一些帮助。

大数据组件技术面试

hadoop框架1.hdfs的读写基本不问,但是还是要知道2.mapjoin的原理3.hadoop的shuffle原理也没问,也要知道4.你在工作中的hadoop的小文件处理,结合项目进行说明5.hadoop常用的端口号,mapreduce过程发生了几次排序6.yarn提交job的流程7.yarn的调度器选择,工作中怎么选择调度器的8.hadoop的优化9.zookeeper的选举机制


hive框架10.hive的架构以及hive是怎么解析成mr的,说下即可11.hive和数据库的比较,有哪些区别从数据的存储,底层的原理,语法的不同,分析业务的不同,具体的业务场景以及各自的优化(就说了这些,其他的没有问我了)12.hive的优化,分区,分桶13.4个排序的区别14.hive工作中常用的函数15.怎么自定义udf函数16.hive导入数据的几种方式17.hive导出数据的几种方式


flume框架1.flume的组件2.flume怎么采集数据的3.flume怎么自定义拦截器4.flume的数据积压,回答分区和提交拉取批数(实际工作中怎么提高拉取数的,举例说明)5.flume如何支持断点续传flume最新的版本有tail sources (你要去了解配置的过程)


kafka框架1.kafka消息不丢失机制这个问题从两个方面讲一般没问题 1.从kafka0.8版本和kafka0.10版本讲各自偏移量的一个位置 2.kafka的ack机制2.kafka副本机制3.项目中kafka的topic设置4.kafka挂掉怎么解决5.kafka分区策略6.kafka重平衡机制


hbase框架1.hbase机构必须了解2.hbase的读写流程3.rowkey的设计(项目中如何设计,为什么要这样设计)4.hbase是怎么将数据保存到hdfs的具体是怎么刷写到hdfs的5.hbase的二级索引是怎么实现的6.hbase的小文件太多怎么处理的7.hbase的高水位机制


scala语言1.scala中class与case class区别2.scala的柯里化3.scala闭包如何理解的4.scala高阶函数(必须会,这块问的最多)


spark框架1.spark作业提交流程2.spark中的rdd特点,说下你分别是怎么理解的3.spark的部署模式4.宽依赖和窄依赖5.spark的shuffle与hadoop的shuffle有什么区别6.saprk广播变量7.spark的调优(调优结合工作中的项目来说)8.saprksql与hivesql有什么区别9.sparkstreaming消费kafka的两种api10.saprkstreaming:你在工作中消费kafka数据如何保证数据的不丢失和只消费一次(这块工作中无法保证数据的重复消费)

重复消费:官网解释是有三个条件 1.采用kafka数据源 2.采用rdd 3.幂等性或者事务约束 事务是把提交偏移量和写数据搞成事务,做到两个成功才算成功,这个是我之前看spark官网看到的,说出这个就不会再问你了

11.手写saprk的wordcount程序12.saprk提交作业的参数有哪些,工作中如何设置参数的


java技术面试知识点
1.hashmap和hashtab的区别2.多线程用过吗,用过多线程的三方框架吗,多线程实现的方式3.gc回收算法,每个算法的场景,各自由什么优点与缺点4.jvm是怎么实现跨平台的5.jvm调优6.手写冒泡排序,归并排序,快速排序,选择排序以及希尔排序(具体可以百度十大排序算法,这个必须要会)7.手写单例模式的懒汉和恶汉模式8.项目中有没有高并发场景,如果有怎么做的,没有的话谈谈你对高并发的一个理解9.还有其他的源码就不会问了,因为我之前工作是接触源码比较多,基本上都是基于源码的开发,所以问的多10.关于集合的线程安全看看


项目面试
1.数据量多大

2.数据的峰值多少

3.项目的难点这块简历一定要体现,建议直接百度护着谷歌去搜索什么技术的项目难点,试着把你的项目运用上去

4.集群的配置情况,你如果说你会saprk 集群的内存必须要去了解的,因为spark涉及到调优,你不了解内存啥的没有人会信你的调优的

5.你不了解的技术千万不要写上去,不然你会很难受的,尽量挑选自己掌握特别好的,关于怎么转到大数据的,这点非常重要,如果说你之前实习做的java转到大数据的,面试官会问你java的知识点,因为你项目没有写java,面试官会认为你怕问java,一般什么不会就问哪个

6.你怎么转到大数据这个行业的,这个关系到是否会问你java的问题,建议自己想个理由

7.关于简历问题:简历上的每个项目建议多想几个项目难点,因为真正开发过程中是不可能没有遇到问题的(这个合理的话会有加分项的)

8.项目的架构以及流程图必须要会画

9.技巧:1.一般面试官问你很多理论,项目问的特别少的话,说明他知道你是什么情况,说明你只要符合要求就能入职2.如果面试官一直问项目就说明,他们这个项目很急或者是急着找人,一进去就能干活的这种,这时就要问你项目的细节,判断你是否真的做过,是否来了后能马上开始做项目

·················END·················


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4月前
|
SQL 前端开发 程序员
【面试题】前端开发中如何高效渲染大数据量?
【面试题】前端开发中如何高效渲染大数据量?
110 0
|
4月前
|
设计模式 SQL 算法
大数据面试总结
大数据面试总结
61 0
|
4月前
|
存储 安全 Java
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day03】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day03】——JavaSE
57 0
|
3月前
|
SQL 大数据
常见大数据面试SQL-每年总成绩都有所提升的学生
一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生
|
4月前
|
分布式计算 监控 大数据
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
73 1
《吊打面试官》- 大数据工程师50道中大厂面试真题保姆级详解
|
4月前
|
SQL 分布式计算 算法
程序员必备的面试技巧——大数据工程师面试必备技能
程序员必备的面试技巧——大数据工程师面试必备技能
92 0
|
4月前
|
缓存 运维 NoSQL
面试分享:Redis在大数据环境下的缓存策略与实践
【4月更文挑战第10天】探索Redis在大数据缓存的关键作用,本文分享面试经验及必备知识点。聚焦Redis数据结构(String、List、Set、Hash、Sorted Set)及其适用场景,缓存策略(LRU、LFU、TTL)与过期机制,集群和数据分片,以及性能优化和运维技巧。通过代码示例深入理解,助你面试成功,构建高效缓存服务。
121 4
|
4月前
|
消息中间件 分布式计算 Kafka
50道大数据精选面试题
50道大数据精选面试题
|
4月前
|
Java 大数据
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day04】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day04】——JavaSE
54 0
|
22天前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。