字节三轮面试面筋

以下内容量比较大,不过自己复盘了一下,确实这几轮面试都是自己表现比较好的,问题也都回答了个7788,运气也算是集中到这几轮了
岗位是字节data下面的数据平台的大数据XX工程师(防一下定位),拿到意向后努力回忆一下三轮面试的内容,也为我上一个帖子引下流,有知道数据平台情况的朋友可以和我同步一下相关信息。

timeline:
9.23 一面 (第二天约9.29二面)
9.29 二面  (节后第一天约10.14三面)
10.14 三面  (第二天约当天hr面)
10.15 hr面
10.24 意向

-----------------------------------------------------------------------------------------------------------------------------
一面(1h):
开始面时基本没觉得自己最后能拿到意向,所以回答还有思考都比较松弛,和面试官聊了一下ai时代下数据仓库的核心竞争力其实还是分布式架构,高可用以及弹性扩缩容这些大数据时代涌现出来的技术,因为就目前来看数据库支持RAG实现向量检索,虽然有一定竞争力,但没有任何垄断性(甚至最近经常刷推文看到RAG已死什么的,不过就向量索引这个事来说确实没什么技术含量)
具体问题:
1.实习相关问题(实习做的主要是数据仓库湖仓一体相关的东西,比如读写外部服务器上的大数据格式文件这些东西)
2.了解数据湖吗(hudi,iceberg这些)
3.非结构化数据或者说多模态的数据用向量化存储,为什么能解决查询问题?
4.设计一个向量数据库,需要哪些模块和核心能力?
5.机器内存不够的情况下,如何取出几个大文件中出现频率最高的URL(搞底层的面试官真的很喜欢问内存不够,三面的时候问了同样的问题)
6.刚才你有说到大根堆,实现一个大致的大根堆(写了堆化完面试官就说可以了,没太刁难)
反问:业务和部门人数这些

-----------------------------------------------------------------------------------------------------------------------------
二面(1h)
经典面试官迟到几分钟,三轮面试加上hr面,面试官全都迟到了,说实话有点无语,不过二面时候由于非常紧张所以语速比较快,面试官提醒了一下可以降低一下语速给我松了口气还挺好的
1.实习相关问题(同一面)
2.简单描述一下parquet格式,parquet中不同的column配置的行数是一致的吗
3.列存的优劣势(三面也问了)
4.知道布隆过滤器吗
5.实习项目最大的挑战
6.使用的C++排查问题工具有哪些?
最后问了几个八股:
7.死锁和活锁的区别在于
8.C++里有守护线程和非守护线程吗?
9.了解exactly once语义吗?
手撕:使用int数组实现一个记录1~n值是否存在的位图。

-----------------------------------------------------------------------------------------------------------------------------
三面(1h)
问的最多也是压力最大的一面,虽然没有手撕也没有继续问实习项目相关的东西了,但感觉面试官想把我榨干一样疯狂提问领域内知识,而且中间还会一度比较大声的打断我,不耐烦的重复自己的问题和我的回答有什么问题,压力还是比较大的,还好提前准备了一些业内知识,问到的时候能回答个7788,不然不准备可能前几个问题就寄了。
1.olap与oltp的区别
2.列式存储的优缺点
3.向量化执行具体是指什么,SIMD是什么,具体使用SIMD指令时是需要调用函数吗还是怎么使用(不同架构的芯片提供的具体SIMD指令有所不同,可以程序中内联汇编调用SIMD,但是在高级语言层面,可以调用编译器如GCC的内置封装了SIMD指令的函数编译时指定芯片架构即可,或者某些操作系统或者三方库也封装了一些常用的SIMD指令函数,比如memcpy和memchr等会在编译时使用SIMD进行优化)
4.数据库中的变长字符串如何编码才方便进行比较和存储?
5.你说字符串前记录字符长度,但是如果我想直接访问第100个字符不是要把前100个字符都过一遍,怎么优化?
6.使用字符偏移表或者说字符指针也可以,但是这样频繁来回访问会导致较为严重的CPU缓存失效(比如说先访问一个偏移的指针,然后遍历一大段字符串后,再访问下一个偏移的指针,此时就会发生缓存失效),如何解决?
7.实习时有没有遇到一些任务执行时内存不够的情况,不够的话数据库是怎么处理的?
8.把上个问题简单一些,比如说现在要对一个比较大的数据进行排序,数据不够放到内存里怎么排?(经典内存不够,说的底层一些就是外部排序,说的系统一些就是map reduce,都可以,看自己对那个更熟悉)
9.给你一个单机redis,如何构建一个分布式redis集群(不是问redis集群怎么拉起来,是怎么构建一个分布式架构),我这里说了现在主流数据仓库的mpp架构,虽然对redis可能不是最优的,但是应该面试官也比较了解这个架构,也能说的比redis集群构造的东西多一点(但其实自己也不知道redis集群具体怎么做的,只知道mpp)
10.你的实际存储数据的从节点是只能故障时使用吗,还是平常能读写?
也是最后问了几个八股:
10.C++的构造函数和析构函数能不能设置为析构函数?
11.解释一下什么叫协程(因为学过一些go,所以就用go的gmp模型解释了一下相关理解,这个应该挺加分,因为go的gmp确实是各个语言中协程里做的最好的)
12.知道什么是连接池吗(面试官这里好像有什么急事,没问的很清楚,所以就没回答的很好)
反问:
1.业务以及该岗位目前与ai的结合
2.这场面试自己哪点做的不够好,面试官说我很多东西最后说的都是对的,但是说之前没组织好语言,讲的不够清楚,需要再提升一下交流能力,想清楚再说。这个确实是我的通病,很害怕面试官等一会就觉得我不会就不给回答机会了,所以一有想法就开始流式吐字,导致逻辑不够清晰,大家也可以注意一下,面试官给的建议就是先说个大概,然后说自己需要措辞一下,一般都会等,说清楚说对最重要,不是说的快(但该说不说,可能有的面试官一直看你半天不回答不会不会觉得你在等ai回复)。

-----------------------------------------------------------------------------------------------------------------------------
hr面(20min)
面试官感冒了,说话一直吸溜鼻子,所以说问了几个问题就结束了,估计hr也知道决定权不在这一面上,所以没有很多刁难问题,感觉比较重点的问题就这个几个:
1.之前看你面过一轮数据库的岗位,你有复盘为什么上一轮没通过吗(说实话我一点都不知道为啥挂我,问了几个冷门的linux知识没回答上来,然后手撕个反转链表后一周给我挂了,但是我回复还是结合着岗位匹配度不同和面试官关心得具体知识不同做了回答,简单来说就是这个岗位更适合我,之前那个没那么匹配,之前的面试官关心得点也和我自身得核心能力不太符合,大概这样)
2.如何协作,遇到过什么困难,遇到压力如何应对(全是万金油问题,我就万金油回答,挑一些绝对不会出错得打法就好)
3.手边offer
反问:
部门氛围,ai相关,啥时候出结果这些
全部评论
佬,hr面完多久oc啊
点赞 回复 分享
发布于 11-17 22:08 广东
佬,求教怎么准备大数据方面的面式
点赞 回复 分享
发布于 11-09 13:48 贵州
大数据计算引擎开发吗
点赞 回复 分享
发布于 10-29 21:21 陕西

相关推荐

11-27 12:10
门头沟学院 Java
1. JWT数据格式Header.Payload.Signature,Header存算法,Payload存用户信息,Signature用于防篡改2. 用户感知token过期前端请求返回401状态码本地缓存过期时间主动判断3. 拦截器实现是,实现Spring的HandlerInterceptor接口,重写preHandle等方法4. Bean生命周期实例化→属性注入→初始化→销毁5. 后置处理器实现BeanPostProcessor,在bean初始化前后拦截,如AOP代理生成时使用6. Lombok作用自动生成getter/setter/构造器/toString等,减少样板代码,提升开发效率7. Redis数据结构String/List/Hash/Set/ZSet/Bitmap/HyperLogLog/GEO8. ZSet实现底层用跳跃表(SkipList)+哈希表,跳跃表按分数排序,哈希表支持O(1)查分数9. ZSet查询复杂度O(logn),因跳跃表分层结构,每层跳过约一半节点,类似二分查找10. InnoDB索引类型主键索引、唯一索引、普通索引、全文索引(5.6+)、空间索引11. 索引有效性判断看查询条件是否命中索引字段,是否避免%前缀模糊查询/函数计算等破坏索引的操作12. 索引底层实现B+树结构,普通索引叶子节点存主键值,主键索引存行数据13. 进程vs线程进程:资源分配单位,独立地址空间线程:CPU调度单位,共享进程资源,切换开销更小14. 线程同步措施synchronized/Lock/Atomic原子类/volatile/CAS/ThreadLocal15. TCP关闭流程四次挥手:客户端FIN→服务端ACK→服务端FIN→客户端ACK16. 关闭连接状态客户端:TIME_WAIT(等待2MSL确保包送达)服务端:CLOSE_WAIT(未及时调用close)TIME_WAIT过多会占用端口资源,影响新连接建立手撕 数组最小操作次数
查看17道真题和解析
点赞 评论 收藏
分享
评论
6
16
分享

创作者周榜

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