zoukankan      html  css  js  c++  java
  • 【面经记录】搜狐、快手实习面试【大数据开发】

    一、搜狐面试

    时间:2019年7月11日

    地点:搜狐媒体大厦

    面试岗位:数据开发工程师(实习)

    面试过程:

      面试官轮流上阵,一个问完另一个接着问,整体过程比较轻松,不会的问题也会引导着进行回答,重点是根据简历问相关项目经验和知识,所以简历上写的东西很重要。

      主要问题:

    • 自我介绍,基本情况,最近做的项目是什么,简单介绍
    • Apache Storm在项目中主要用来做什么,为什么要用Storm,写几个进程不行吗?
    • Apache Kafka主要用来做什么,功能是什么,为什么要用它?
    • Kafka的patition如何理解,基本原理
    • Kafka的消费者、消费组,消费者数量多于partition数量怎么办,少于呢?数量逐渐增加怎么办?(答案:kafka中partition和消费者对应关系
    • Kafka依赖于Zookeeper,ZK主要在这里用来干什么?
    • Redis是什么,优点在哪里,单机模式和集群模式,单机挂了怎么办
    • Redis的两种持久化机制,AOF怎么做数据恢复
    • MapReduce编程模型,整个数据处理流程
    • MapReduce为什么需要一个shuffle阶段,主要目的是什么
    • shuffle阶段为什么要进行排序(让同一个key相邻,从而可以存在一个文件中,减少磁盘文件数量)
    • MapReduce数据倾斜怎么处理,比如相同key值的数据很多,导致其中一个Reducer的数据量很大(key带一个ID号。分别hash到不同的Reducer去,分别处理)
    • MapReduce的推测执行
    • 算法题(手写):二叉树中序遍历、求n的阶乘
    • 单例模式
    • 数据库(手写):SQL语句(一个用户看一次视频有一条记录,求看了一次的人数、看了两次的人数······看了十次的人数,主要是group by+having)
    • java:HashMap的底层实现原理
    • 提到的自己不是很了解的内容:Spark、Spring框架、Scala语言

    二、快手面试

    时间:2019年7月18日

    地点:海淀西二旗 快手总部

    面试岗位:数据开发实习生

    面试过程:

      整体过程比较轻松,共三个面试官轮流面的,有点偏向对实际问题的处理,不局限在单纯的知识。

      主要问题:

    • 简单的自我介绍
    • 手写算法:LRU(最近最少使用淘汰策略)
    • 数据库SQL(没写对):一张表(年级、科目、姓名、分数),分年级分科目找出前三名(也就是每个年级每个科目的前三名)
    • 对Hadoop有什么了解,讲一下mapreduce的基本原理
    • MapReduce里面mapper的数量是怎么确定的(每一个输入分片创建一个map任务),reducer的数量呢(自己指定),那如果没有指定reducer的数量,默认是什么情况(这个没答上来)
    • python的两个关键字(没记住,没答出来)
    • 项目里面Storm是怎么用的
    • 除了Storm,还懂哪些流数据处理的框架,问了一个Storm的机制,没太听懂
    • Kafka是如何保证可靠性的(没说完整,ACK??),kafka主从节点间的同步问题
    • 数据库存储引擎:InnoDB索引和MyISAM索引的区别是什么(说了索引方式不同,又问使用的锁有区别吗,不是很清楚)
    • 手写:单例模式
    • HashMap的底层实现,性能是多少,追问:如果你来设计HashMap,数据多的时候性能下降,如何写一个函数来确定是否现在需要对哈希表进行优化,问自己的想法,前提是不能改变数组+链表这种结构
    • 接着哈希表追问:如果不使用锁,一个线程往哈希表写,另一个从里面读,举例说说会出现什么问题
    • 手写脚本:一个文件,每一行的数据里包含一个ip:XXX.XXX.XXX.XXX这样的信息,写一个脚本(python或者shell)获取其中有多少个独立的ip
    • HTTP协议了解吗?输入一个URL背后的过程
    • HTTP的 get 和 post 有什么区别
    • 解释一下java的内存管理机制,如何进行垃圾回收的,如果你在使用过程中发现了内存问题怎么办
    • 接着内存管理问了一下C++和python
    • 对AWK熟悉吗?
    • 手写算法:二叉树的层次遍历
    • 机器学习:决策树解释一下,ID3和C4.5,过拟合了怎么办,预剪枝和后剪枝
    • 最近做了什么项目,用到哪些知识
  • 相关阅读:
    SpringBoot-Mysql模板多数据源加载
    SpringCloud-动态配置变化监控-获取变化(支持Config、Nacos)
    SpringBoot-ElasticJob封装快速上手使用(分布式定时器)
    关键字(标签)提示组件——拼音、汉字混合搜索
    写一个高性能的敏感词检测组件
    一个文件搞定Asp.net core 3.1动态页面转静态页面
    浅谈C#在网络波动时防重复提交
    对RC4算法进行改写,新的加密算法RCX。
    【ToolGood.Words】之【StringSearch】字符串搜索——基于BFS算法
    万能解决方案之彻底解决macOS cocoapods环境的所有问题
  • 原文地址:https://www.cnblogs.com/gzshan/p/14150504.html
Copyright © 2011-2022 走看看