当前位置:   article > 正文

富途 高级SRE工程师 一面内容_sre面试

sre面试

离职9个月了,面试的时候一问三不知,现在记下面试问题重新学习吧。


一、自我介绍


二、大数据中,什么是数据倾斜和怎么优化
数据倾斜数据在每个节点上的分配不均,其中个别节点处理的数据量远大于其他节点,原因是某一个key中重复的条数比其他key要多,而这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完。
优化方法:
1. 升级spark的版本,目前spark3已经有系统自带的优化方法,将倾斜的数据再一次分割到其他的节点中,减少倾斜的数据量,从而减少数据倾斜导致的运算时间过长。
2. 过滤多余的数据。部分倾斜数据是测试数据,例如imei=123456789或者imei=888888888等明显不符合实际的数据,或者是0、null、"NULL"等污染数据,这部分数据可以咨询业务是否需要过滤。
3. 将倾斜的key单独捞出来并添加随机字符来打散数据,运行完后再用union on函数进行结合。一般情况下一个节点中推荐处理1000w条数据,那么如果倾斜数据为10亿条,那么就在这个key后面增加随机数 int(radom(100)) 分成100份。


三、大数据sql的底层执行流程
sql在提交到集群中执行之前,会先经过优化器转化成RDD。而在优化器中,会先进行SQL解析,再进行优化,最后执行。


四、Spark的任务调度流程
(太复杂看不懂乱写的,而且之前工作时基本上没用到也没学到相关知识)
因为我们公司使用的是on yarn模式,首先spark作业提交后,会在yarn集群的core节点中拉起appmaster,而appmaster中又会拉起driver。drive向集群的master请求资源,而master会根据资源到work节点中拉起executor。之后driver中会拉起TaskScheduler和DAGScheduler会分别对task和stage进行调度。


五、Mysql的隔离级别
一共有四种
读未提交 READ UNCOMMITTED | 0 : 存在脏读,不可重复度,幻读的问题。 
读已提交 READ COMMITTED | 1 : 解决脏读问题,存在不可重复读,幻读的问题。
可重复读 REPEATABLE READ | 2 : 解决脏读,不可重复读的问题,存在幻读,默认隔离级别。
序列化 SERIALIZABLE | 3 : 解决脏读,不可重复读,幻读,可保证事务安全,但完全串行执行,性能最低。


六、Mysql日志有哪些
1:重做日志(redo log)
2:回滚日志(undo log)
3:二进制日志(binlog)
4:错误日志(errorlog)
5:慢查询日志(slow query log)
6:一般查询日志(general log)
7:中继日志(relay log)
重点需要关注的是二进制日志( binlog )和事务日志(包括redo log 和 undo log )


七、如何看Linux 系统负载
使用 uptime 指令
得到的结果中 load average: 0.00, 0.01, 0.05 分别是过去1分钟内,5分钟内,15分钟内的平均负载
也可以使用 top 指令来看有什么进程和处于什么状态


八、编程题:语言不限,在升序数组中查找数字出现的位置,空间复杂度和时间复杂度是多少
空间时间复杂度我以前没接触过,所以就随便写了个
public int[] array1 ;
public int x;
void Sort(int x ,int[] array)
{
for(int i = 0; i<=array.Length-1;i++)
       if (array[i] == x)
{
           Debug.LogFormat ("第{0}位的数值为{1}",i,x);
           break;
}
}
复杂度大概是O(N)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/495163
推荐阅读