大数据研发岗面经小结(涉及阿里,网易 云音乐以及商汤科技)

大数据研发岗面经小结(涉及阿里,网易 云音乐以及商汤科技)

项目方面:项目闪光点、优化点、涉及到的关键技术这些基本都会问,事先最好准备一下、如果有开源项目经验就更好。

语言方面:

至少精通一门语言Java或C/C++等(以Java为例),java内存模型、gc回收算法、各种gc回收器的使用场景

类加载机制以及涉及到的一系列问题;volatile特性、主内存与工作内存交互、happen before原则、内存栅栏

类加载过程(class文件到jvm这个过程)

callable runnable 区别

synchronized与lock区别

进程线程区别

hashMap和treeMap的区别,以及实现

concurrenthashmap怎么实习同步?各个版本的实现方案?

PS:最好再掌握一门脚本语言。如Python或者Scala等。

大数据方面:

MapReduce过程;

spark排序实现流程,reduce端怎么实现的

HashPartitioner与RangePartitioner的实现,以及水塘抽样

spark有哪几种join,使用场景,以及实现原理

dagschedule、taskschedule、schedulebankend实现原理;(网易 云音乐 )

宽依赖、窄依赖(网易 云音乐 )

画一个yarn架构图,及其通信流程

hdfs数据读取流程,实现原理

HBase和传统数据库的区别;

HBase读数据过程;

HBase Master和Regionserver的交互;

HBase的HA,Zookeeper在其中的作用;

Master宕机的时候,哪些能正常工作,读写数据;

region分裂;

Spark数据倾斜,怎么定位、怎么解决(阿里)

Mysql的索引类型及其实现原理;同时哪些存储引擎支持B树索引,哪些支持Hash索引
为什么mysql索引要用B+树而MongoDB用B树?
Mysql查询如何优化
主键和唯一索引的区别
事务的隔离机制,mysql默认是哪一级
MyISAM和InnoDB存储引擎的区别
Mysql查询优化,慢查询怎么去定位?
Mysql中的各种锁,乐观锁,悲观锁(排他锁,共享锁);行锁,表锁是怎么实现的?
MapReduce支持哪些join,map端?reduce端?semi join?semi join可以通过什么算法去优化?
MapReduce实现二次排序;
MapReduce实现两表join;
MapReduce实现一个存储kv数据的文件,对里面的v进行全量排序;
Zookeeper实现原理,zab协议以及原子广播协议;
paxos协议,multi-paxos,zab,raft各种分布式协议内容,使用场景;
Hadoop namenode的ha,主备切换实现原理,日志同步原理,QJM中用到的分布式一致性算法(就是paxos算法)

spark运行架构:
spark运行原理,从提交一个jar到最后返回结果,整个过程;
spark的stage划分是怎么实现的?拓扑排序?怎么实现?还有什么算法实现?
spark rpc,spark2.0为啥舍弃了akka,而用netty?
spark的各种shuffle,与mapreduce的对比;
spark的各种ha,master的ha,worker的ha,executor的ha,driver的ha,task的ha,在容错的时候对集群或是task有什么影响?
spark的内存管理机制,spark1.6前后对比分析
spark2.0做出了哪些优化?tungsten引擎?cpu与内存两个方面分别说明
spark rdd、dataframe、dataset区别.

算法数据结构方面:

图怎么存的、有哪些图算法;
红黑树怎么实现、如果树里面有两个值相等的节点,怎么识别?

问题:一排正整数,每次只能去两头的数,甲乙两个人轮流取,如果甲先取,问后谁取得数相加和最大,最大和为多少?典型博弈论问题(可以看看海盗分金问题),大致两个动态规划方程


大数据开发中,Shell脚本是非常常用的工具。以下是一些常见的面试问题和答案: 1. 问: 如何执行一个已经创建的Sqoop job? 答: 可以使用以下命令执行Sqoop job: sqoop job -exec job名称 。 2. 问: 你使用过哪些Shell脚本? 答: 我使用过awk、sed、cut和sort等命令来处理文本数据。我还写过一些用于集群启动、脚本分发、数据导入导出以及数仓层级内部导入的Shell脚本 。 3. 问: 如何通过Shell脚本杀死远程服务器上的进程? 答: 有两种方法可以杀死远程服务器上的进程。一种是使用以下命令: ssh $i “ps -ef | grep 进程名 | grep -v grep |awk ‘{print $2}’ | xargs -n1 kill”。另一种是使用以下命令: ps -ef | awk ‘/进程名/ && !/awk/ {print $2}’ | xargs -n1 kill -9 。 4. 问: Shell中单引号和双引号有什么区别? 答: 在Shell脚本中,双引号可以保留变量的值并将其扩展,而单引号则会将变量视为普通的字符串。双引号内的特殊字符会被解释,而单引号内的特殊字符会被视为字符串的一部分。此外,双引号内可以使用转义字符来表示特殊字符,而单引号不支持转义字符 。 希望以上回答对你有所帮助。如果你有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [shell编程之大数据面试题](https://blog.csdn.net/qq_27924553/article/details/111938876)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [大数据高频面试题——linux&shell-详解](https://blog.csdn.net/zlmldylinke/article/details/113886037)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值