大数据工程师是近几年异常火爆的职位,市场需求旺盛,众多互联网公司都打出了高薪招聘的广告,本文整理了网络上部分技术人员分享的各大互联网公司大数据类(Hadoop、Spark等)面试题以及面试时需要注意的一些问题,希望对各位技术人员有所帮助。
阿里巴巴
阿里巴巴的面试轮次基本是三次,技术方面分为简单的项目经验了解和个人技术水平考察。部分网友将面试官分成了两类:一类是技术型,不断加深问题难度以测量你对技术的掌握深度;另一类是综合素质型,通过简单的技术问题引导求职者自我表达,侧重考察求职者的个人思想、表达能力等综合素质。
二叉树、排序、SQL等基本概念问题几乎所有求职者都被问到过,接下来的手写代码或者技术深度类的问题都与面试的职位息息相关。有技术人员贴出了自己对阿里巴巴大数据类面试题的一些总结:
如果参加过阿里巴巴的大数据竞赛或许对面试有很大帮助。面试中,可以抓住面试官的兴趣点,尽量拉到你擅长的话题或技术讨论中,这样对你的面试有很大帮助。
京东
京东的大数据类面试基本是两轮,再加一轮人力面。人力是简单了解一些工作情况、期望薪资之类的问题。前两轮面试一轮是基础面,一轮是项目面。第一轮主要是围绕基础概念展开,基础知识扎实肯定没问题。第二轮会根据项目经验进行询问,技术难度加大。
问题主要围绕Hadoop、Spark、Hive、Storm和数据库的基础操作以及工作原理,Linux的常用指令等,详细询问你的项目经验,了解项目中用到的技术或方法,遇到的问题,必要时需要手写代码或一些大数据组件的搭建和详细参数配置。
腾讯
腾讯需要经过三轮面试,基本流程与京东相似。简历上的项目经验一定会被仔细询问,建议求职者对自己所写的项目经验认真评估,对项目的每一个细节都仔细查证。其次,部分技术人员表示自己被要求手写代码,比如用C++写深度优先搜索;与Java有关的面试题也不少,比如Java有几种设计模式,各有什么优缺点。适合哪些场景;最后是一些与Hadoop相关的问题,比如Hadoop的一些操作如何实现等。
百度
一共三轮面试,技术方面主要考察各类排序算法、Linux命令、Hadoop、分布式、大数据处理方面的内容,对统计模型要求较高,对数据结构以及编程功底有要求。多位求职者反应,百度的面试更偏重对技术水平的考察,偏向一题多解,不但要给出方案,同时要不断优化得到最优解决方案。
美团
美团的面试轮数同样在3到4轮之间,不同的面试官侧重点可能有所不同,比如侧重关系型数据库的可能会问你索引为何选B树。B+树,不选二叉树,事务的ACID是什么,传统关系型数据库和非关系型数据库HBase的区别,HBase删除数据怎么做(时间戳切入)等;侧重大数据,尤其是离线处理方向的可能会问你离线数据处理怎么做,基于磁盘的离线处理和基于内存处理海量数据的区别,MapReduce和Hive的区别,HBase和HDFS的区别等。
各种排序算法几乎是各家公司面试都会被问到的问题,快速排序出现的频率尤其之高。
滴滴
滴滴的大数据类面试题首先是常规的自我介绍,应聘互联网公司,自我介绍中可以适当突出自己的合作能力和对加班的看法(互联网公司加班现象比较普遍,这点需要做好心理准备)然后是简单的项目经验询问,涉及的原理、算法、公式推导、算法调优等。由于业务特性,滴滴对服务端高并发的问题比较看重,例如,有技术人员被问到在打车高峰期流量较高的情况下,如何让客户省钱。其他问题包括Hadoop提交作业的总体流程、HDFS的基本原理、Hadoop的shuffle过程、SQL语句自动规范化处理等。算法题目还是排序、递归、遍历等常见题目。
今日头条
今日头条的面试安排比较人性化,基本会和求职者商量时间,如果时间不合适,也会考虑视频面试,比较灵活。面试问题因人而异,如果项目经历基本空白,面试官会着重考察基础概念的掌握,面试时间半小时到一小时不等。
基础概念部分首先考察对编程语言的理解,Java或者C++/C任选其一,比如Java方面,会询问你虚拟机、类加载机制、垃圾回收机制等问题;其二是对网络基础的考察,三次握手四次挥手(几乎每家公司面试都会提到)、Http协议等;其三是对大数据框架的理解,比如常见的MapReduce理解、shuffle过程理解等;最后是对基础算法的现场编程,比如一个数1234,得到下一个比它大的即1243以此类推。
对于项目经验比较丰富的技术人员,面试时对项目经验的盘问会多一些,代码题的难度会高一些,但据前线面试人员反馈,今日头条在代码和算法考察方面,都是一些基础算法,难度不大,但就怕一时之间技术人员反应不出最优解,很多问题都有多种方法可以解答,如果知道可以都写出来。
小米、华为
小米和华为的面试过程比较简洁,更多的是业务能力和项目经验的考察。面试题与其他几家公司的大致雷同,面试过程相应较短,同样需要手写代码。
总结
1、项目经验是所有互联网公司面试时都会认真询问的,因此简单参与或相关度极低的项目不建议写在简历上。同时,对项目中用到的相关算法、遇到的技术难点一定要心里有数。
2、算法能力依然重要,排序算法、深度、广度遍历搜索是出现频率最高的算法。数据结构方面,堆、哈希表、二叉树是最重要被考到的概念。网络基础部分,三次握手四次挥手和Http协议几乎必问。
3、大数据框架部分,不同公司的业务不同关注点不同。但是基本的框架或生态组件的理解,比如MapReduce、Hive和HDFS是被问频率最高的问题,也包括一些组件之间的对比。
4、综合素质方面,合作能力是重要考察方面,可以在项目经验中适当增加对合作方面的说明。其次,自己对加班的态度也很重要,互联网公司的加班是常态,求职时需要做好心理准备。
对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解
想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家
并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 。