富途 高级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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默哀d

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值