前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >昨天我面试了一个人

昨天我面试了一个人

作者头像
王知无-import_bigdata
发布2021-09-22 11:51:14
3870
发布2021-09-22 11:51:14
举报

有事,短更。

这篇文章是因为今天面试了一个同学,最终没通过,记录一些细节。

我问了一些问题,最核心的几个问题如下:

基础部分

  1. 一个Java对象的内存分配流程是怎么样的?
  2. 集群线上JVM的主要参数有哪些?垃圾回收器用的CMS还是G1,为什么选择G1?
  3. 业务上多线程如何创建线程池,一些核心的参数设定。Spark是多进程模型还是多线程模型?MapReduce呢?大概讲一下一个Spark任务提交会产生哪些进程和线程?

数据组件部分

  1. 产生数据倾斜的根本原因是什么?你是怎么发现产生数据倾斜的以及解决的办法。
  2. Spark如何管理内存的?Spark用到的内存有哪些?以及什么情况下会用到堆外内存?
  3. 你了解的任何一个实时计算框架的任务调度是如何做的?

其他

  1. 设计一个系统,能承担每天百万级别的任务调度。
  2. Spark的back-pressure限流器怎么实现的?你能自己实现一个限流器吗?说说思路。

以上8道题,能回答上来6个就可以了。

但是很遗憾确实相差的有点远。

整体的感觉是,面试者对组件停留在会用层面,在一些简单的业务场景或者成熟的平台下开发完全没有问题,但是遇到难题恐怕难以解决。

另外知识点有些分散,什么意思呢?这也是很多同学的通病,也就是对一个组件没有整体的概念,不清楚来龙去脉,只是停留在使用层面。

每当学习一个组件,一个比较好的学习路径是,了解背景,熟悉常用功能,上手做一个简单的项目,熟悉一个源码和各个模块,然后了解组件本身在使用中会遇到的问题。有些问题你可能没遇到过,那么就需要去社区或者论坛找一下相关资料,看看别人遇到了什么问题,自己尝试复现并解决一下。

另外,最近准备发起一个阅读源码的项目,针对某一个框架的某一个小模块,以学习小队的形式以周或者双周为单位报名进行阅读。我会出一些题目,要求参与人能自己在源码中找到答案,最后产出一篇学习笔记或者博客,不按时完成有惩罚措施。每周抽出2个小时阅读源码,少打一会游戏。坚持下来,相信你会不一样。

项目细节还在思考中,大家有兴趣可以加我微信等细节敲定了酌情报名参加。我的微信号:whispererrr。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术与架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
流计算 Oceanus
流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的企业级实时大数据分析平台,具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档