不同岗位、不同公司、不同面试官问的内容是不一样的。大数据开发包括 Hadoop(ETL,Mapreduce),Spark(SparkSql 和 SparkStreaming),Python 等,看你偏向的技术了。另外大数据开发看是否偏向数仓开发和数据分析,又会不一样。不同的面试官和公司用到的技术栈也不一样,问的问题也会有很大差别的。

我说说我面试大数据开发岗面试官常问的问题吧。因为我简历项目项目经验注重实时流处理这方面,在面试时,面试会在这些方面问的比较深,我前后梳理一遍吧。

一般上来就是自我介绍,谈下工作经历和项目经验,面试官会根据你的项目经验对你进行技术面试。

  1. Java 是必问的,不过问的不深,把 Javase 部分吃透,足以应付 Java 部分的面试。
  2. Hadoop 生态,Yarn、Zookeeper、HDFS 这些底层原理要懂,面试经常被问。
  3. Mapreduce 的 shuffle 过程这个也是面试被常问的。
  4. Hbase 和 HIve,搞大数据这些不懂真的说不过去。
  5. Mysql、Oracle 和 Postgres 数据库操作要回,Sql 要会写。
  6. linux 操作系统,这个简单得命令必须要懂,会写 shell 脚本更好了。
  7. Kettle 或 Sqoop 这种数据处理工具至少要会一个。
  8. 数据仓库建模、数据模型的问题。

上面这些更偏向数仓方面,这些能回答明白足以找一份大数据开发工作了,当然想谋求更好发展,还要了解下面的。

  1. SparkSql 和 SparkStreaming,底层原理、内核、提交任务的过程等等,尽量深入内幕,这个经常会跟 MapReduce 作比较的。当然也要了解 Storm 和 Flink,Flink 这个建议要学会,以后用处会越来越广。
  2. Redis、Kafka、ElasticSearch 这些都得懂原理,深入了解,会使用,会操作,会调优。
  3. impala 和 kylin 这些尽量也要了解会用
  4. Python 这个要是有能力,有精力,建议也要往深处学习,我目前正在自学中。
  5. 集群的问题,包括一些简单的运维知识。
  6. 大数据数据倾斜的问题,包括 Spark JVM 内存调优问题等等。

我以前找工作面试很多家公司,这些都会问到,当然不同的公司问的技术是不一样的,大体上都是围绕着上面来问的。

作者:尘寂

链接:https://www.zhihu.com/question/306127087/answer/1060994701