作者简介
蓝桥签约作者、大数据 &Python 领域优质创作者。维护多个大数据技术群 , 帮助大学生就业和初级程序员解决工作难题。
我的使命与愿景 :持续稳定输出 , 赋能中国技术社区蓬勃发展 !
粉丝福利 :免费下载海量【PPT 模板、简历模板、学习资料】
目录
很多小伙伴问我说 : 你拿了那么多大厂的 offer, 有什么面试套路吗 ?
我想说的是 , 面试无非就两点 :沟通技巧 + 充足且针对性的知识储备。
1、沟通技巧
1) 引导式聊天
简单来说 , 就是从自我介绍开始 , 就蹦出一些技术名词 ,引导面试官对这些技术知识点进行提问, 然后提前准备好答案 , 回答完上一个问题的时候 , 扯一嘴其他的技术知识点 ( 很多面试官喜欢打破砂锅问到底 , 但往往中了你的圈套 )。
在面试过程中有很多引导的机会 , 慢慢体会吧 !
2) 自信的表达
一个自信的表达 , 能让整体面试气氛轻松活跃 , 给面试官好的印象分 ,面试就像谈恋爱 , 看感觉的。
3) 不要暴露缺点
很多小伙伴 ( 包括当年的我 ), 在面对不会的提问时 , 不断的去解释 , 反而会暴露更多问题。这个时候你完全可以说这个不太了解 , 然后继续后面的回答。相信我 , 放过几个不会的 , 不会影响面试结果 , 因为没有人什么都懂 , 你要做的就是 :尽可能多的呈现你会的 , 快速跳过不会的 !
2、充足且针对性的知识储备
关于知识储备 , 我在技术群里咨询了一些大厂的小伙伴的面试经历 , 分享给大家。
针对这些问题的回答话术 , 小编会在近期啃下来 , 作为粉丝福利发布。
1) 技术框架部分
(1)会根据面试者简历上的技能点进行考察。注意技能点描述用词 , 不要随便用熟悉 , 觉得特别熟的可以说熟练使用
(2) 常用的大数据框架是肯定会问的 , 比如 Hive、Spark、Kafka 等。常见的如 Kafka 精准消费问题的多种解决办法对比 ,Spark 的 Task 调度规则
(3) 有些面试官会直接让讲了解的框架最底层实现
(4)Java,MySQL,Redis 必问 ,JVM,Hashmap,JUC 相关 ,MySQL 的索引及优化 ,Redis 数据结构、集群、缓存淘汰
(5) 常见的协议会考 , 租约协议 ,quarum 原理 ,Zookeeper 选举 ,acid,acp,base 等
2) 项目部分
(1)一般会让你挑你最熟的一个项目讲。考察从项目背景到实现的把控
(2) 重点是参与的部分 , 遇到的难点
(3) 常见业务难题的解决和优化 , 层层递进 , 头条追求做到极致
(4) 没有做过的项目、模块不要乱讲 , 容易被问懵逼或者被太简单被鄙视
3) 算法部分
(1) 数据结构必考 , 手写代码 , 每一面都会考。常见数组、链表、二叉树、跳表的题。有些部门会先笔试 ( 电脑实际编码运行 ) 再面试
(2) 算法部分常见动态规划、概率题、二进制一类
(3)SQL 题目 , 行列转换。分区函数 , 统计连续登陆天数这一类问题
(4)多刷 Leetcode, 题都是有套路的
4)HR部分
(1) 想好跳槽理由 , 一般注重抗压能力和稳定性
(2) 大厂会有明确的稳定性的要求 , 如 :无连续 2 段不超过 1 年的工作经历, 当然 , 一般安排面试的话 , 就说明稳定性和学历初筛通过了。
3、真实面试案例
真实面试案例 ( 一 )
1) 技术部分
(1)WordCount 的实现过程
(2)MR 与 Spark 的区别
(3)Spark 在 Client 与在集群运行的区别
(3) 相同的 SQL 在 HiveSql 与 SparkSQL 的实现中 , 为什么 Spark 比 Hadoop 快
(4) 自定义 UDF
(5) 设计 HBase 表需要注意的点
(6)HBase 的 hlog
(7) 数据同样存在 HDFS, 为什么 HBase 支持在线查询
(8) 数据从 Hive 中用 SparkSql 进行操作有遇到什么问题 ? 类似兼容性的问题。
(9)SparkStream 与 Strom,Flink 与什么区别
(10) 有三个 map, 一个 reduce 来做 top10, 哪种方法最优。数据量特别大。
2) 项目的架构
(1) 数据仓库的模型设计
(2) 数据仓库的数据清洗
(3) 业务建模、数据分析方法。
(4) 数据仓库是怎么设计的
(5) 数仓规范设计哪些方面(字段、维度 , 存储压缩、数据保留机制)
(6) 数仓质量怎么监控(数据质量管理系统 , 主键唯一、非空、数据波动)
(7) 数仓主题分哪些(按照公司业务归类
(8) 数仓拉链表的原理
(9) 有没有遇到数据倾斜的问题 ( 场景、解决方式 )
(10) 数仓重点调度任务的保障方式 ( 调度系统优先级 )
(11) 数仓任务报错和监控 ( 调度系统捕捉错误 , 电话短信告之值班人员 )
真实面试案例 ( 二 )
1) 笔试部分
(1) 有一表名 t_sh_mtt_netdisk_log, 从表名可以看出该表是什么业务的 , 是什么周期粒度的表。
(2) 怎么查看表结构 , 表创建语句 ? 怎么查看表有哪些分区 ? 怎么查看分区对应 hdfs 路径 ? 怎么计算某个分区的数据量大小 ? 怎么计算某个分区的文件总数 ?
(3) 有一 hive sql, 怎么计算这个 sql 会产生多少个 map 数 ?
(4) 怎么查看 hive 有什么自带函数 ? 怎么查看函数的详细信息 ?
(5)Hive 支持哪些基木数据类型 ?
(6) 请指出下面两个语句读取分区 ds 数据的不同
Select * from t where ds=20150101 and province='gd' or province='ex'
Select x fromt where ds 20150101 and(province='gd' or province='ex')
(7) 将字符串 "keyl=valuel&key2=value2…keyn=valuen" 进行分割放到一个字段里面 , 可以查出任意一个 keyx 对应的 valuex 值。请写出查询语句 , 并计算总共有多少个 key 值。
(8) 用一个字符串比如 "alblc" 来测试某个函数比如 split( 用 | 分隔符将字符串进行分割 ) 的语句
(9)a 表和 b 表内连接 ,a 表为小表 , 只有 2000 行记录
select a.*from a Join b on a.key=b.key
可以进行怎样的优化
(10)a 表 left join b 表 ,b 表为小衣 , 可以进行怎样优化 ?
scleet a.*from a left join Join b ona.key=b.key
如果 a 为小表 , 可以怎样优化 ?
(11) 请指出下面 sql 语句的区别
select a.* from a left Join b on a.key = b.key and a.ds=xxx and b.ds=xxx
sclect a.* from a lef Join b on a.key = b.key and b.ds=xxx
select a.* from a lef Join b on a.key = b.key and b.ds=xxx where a.ds=xxx
Select a.* from a left Join b on a.key = b.key where a.ds=xxx and b.ds=xxx
(12) 多表连按的写法 :a,.b,c 三个表内连接 , 连接字段都是 key, 怎样写连接语句 ?
(13) 两大表连接 , 发生了数据倾斜 , 有几个 reduce 无法完成 , 怎么查找发生数据领斜的原因 ? 应该怎样优化 ?
语句 :select t1.*,nvl(t2.x,1) from t1 left join t2 on t1.guid=t2.guid
(14) 两大表连接 , 发生了数据倾斜。有一个 reduce 无法完成 , 检直发现 t1 中 guid=" 的记录有很多 , 其他 guid 都不重复 , 这条语句该怎样优化 ?
语句 :select t1.*,nvl(t2.x,1) from t1 left join t2 on t1.guid = t2.guid
(15) 如何用 hive q! 实现 sqL 中的 exist/in 子句
mysql 语句如下 :
SEL ECT a* FROM a where a.key in(select dstinct key from b where key like‘filter%’)
(16)sort by、distribute by、cluster by 和 order by 区别
注 : 可参考数据工厂的“帮助中心》集群 hive》hive 使用优化》hive 使用注意事项”
真实面试案例 ( 三 )
1) 技术部分
(1) 我看你上面写了你会 Spark, 那你用 Spark 写一下刚刚那道题的代码 , 不能用 Spark SQL
(2) 我看你上面有写到熟悉 Hive 原理和优化 , 你说一下怎么优化
(3) 优化有说到语句优化 , 然后又说回到 pv 和 uv 那个问题 , 假如说让你优化你怎么优化 ( 我代码里面有 count(distinct id) uv,)
(4) 问了一些 Kafka 的 , 我只记得一点点 , 问我数据会不会重复消费 , 什么情况下会重复消费
(5) 在 Hive 执行语句的时候如果很慢 , 什么原因造成
我有提到数据倾斜的问题 , 他又问怎么解决数据倾斜
2) 项目部分
(1) 让你挑一个比较有亮点的项目详细说
(2) 你负责了什么 , 数仓中统计了哪些指标 ,
(3) 刚刚听你说项目里面有提到分层 , 如果我要你求每天商品的 pv,uv, 从 ods 层到 dm 层它的具体流向 , 各层都统计了什么 ( 后来让写求 pv,uv 的 sql 语句 )
3) 场景部分
(1) 有一个分区表 , 表名 T , 字段 qq,age, 按天分区 , 让写出创建表的语句
(2) 刚刚的分区表 , 求 20200221 这个分区中 , 年龄第 N 大的 qq 号列表
4) 手写部分
(1) 三个字段 ,timestamp,user_id,product_id, 让求 pv 最大的商品 , 写了之后又叫用 Scala 代码写一遍 , 然后又问 , 假如说只让你求 pv 数大于 100 的 top3 呢 , 代码又怎么写
【求 评论、求点赞、求收藏】
读到此处的大佬 , 你的面试技巧有哪些呢 ? 请在评论区畅所欲言吧 !!
原文链接:https://blog.csdn.net/weixin_39032019/article/details/118252471