写在前面
本文主要面向的读者是在校计算机/软件相关专业想踏足大数据领域寻找相关实习机会的学生,以及刚工作1-2年想转大数据方向的同学。
读完本文,你将收获大数据技术学习的基本方向,以及在面试前需要准备和复习的常见面试题。
❖
正文:
在数据时代的今天,大数据行业是最热门的行业之一。在大数据行业中,大数据分析师是需求量最大的岗位,很多高校也都专门开设了大数据专业,培养数据分析方面的人才。
今天我们就这个话题,结合笔者多年的面试官经历,来聊一聊,如果面试大数据分析师岗位(初、中级),需要掌握哪些基本的技术技能。
在日常的工作中,大数据分析师的核心工作内容便是从大量数据中,通过数据处理、统计分析和算法挖掘等技术手段,将数据转换成有效的信息,从而进一步转化为知识并内化为智慧。
因此,涉及的技术会非常广泛,这取决于具体的业务需求和公司技术架构。本文我们着重介绍大部分公司常用的技术,也是面试中最容易被问到的技术。
下图为互联网公司常见的大数据技术栈:
图 1.互联网公司常见大数据技术栈
上图中,绿色的部分为面试中经常被问到的基础技术,黄色部分为加分项,蓝色部分通常不会直接用到,但是也需要有一定的了解。
本文主要围绕绿色的部分,讲解下这些技术的应用场景、解决的问题及面试中需要掌握的基础内容。根据其功能性和应用场景不同,可以进行以下分类。
互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381就可以找到组织学习 欢迎进阶中和进想深入大数据的小伙伴加入
图2.大数据基础技术栈
大数据分析师的日常工作流程大致如下:
1.设计定义要收集的数据,并由数据收集系统完成收集;
2.完成数据的预处理,将数据转化为结构化的数据;
3.根据业务需求,对数据进行离线SQL分析或者实时分析得到相应的结果信息;
4.将上述结果信息通过数据可视化工具呈现出来,通过对比分析其趋势或差异,推导出相应的结论。
相信聪明的同学已经看出来了,图2中罗列的技术便是从数据分析工作的每个环节中,选择了一个典型代表。笔者结合多年来的面试经历,以及工作中实际使用经验,来一一做下简单介绍。
数据存储
从存储的数据的内容来看,数据存储分为离线文件存储和结构化结果数据存储,其中离线文件存储,主要解决的问题是存储大量的数据,常用的技术是HDFS;而结构化结果数据存储,主要目标是方便存取和修改,常用的技术是MySQL和Hbase。
HDFS
大数据最基础的组件之一,其核心功能是存储海量的数据,存储方式为文件。对于初级分析师来说,只需要掌握其运行的基本原理,熟悉常用的命令行指令即可,常见面试题如下:
1. HDFS正常启动后主要有哪些进程在运行,其作用分别是什么
2. HA主要由什么进程负责,其工作原理是什么
3. 两个NameNode间如何完成数据同步
4. 客户端上传数据的流程是什么
5. 常用的查看、删除、上传、下载和查看active节点的命令是什么
MySQL
MySQL是最流行也是久经考验的关系型数据库,早在大数据技术崛起之前就已经广泛使用。准确来说,其并不算大数据技术之一。
MySQL在技术栈中的主要作用是存储大数据分析后产出的结果数据,因此熟练掌握MySQL也是必备技能之一。日常的工作应用场景主要是对MySQL进行存取数据操作,因此需要掌握的主要内容是数据表设计、数据的存取、查询SQL等。
核心面试题如下:
1. 表设计时的注意事项或技巧
2. 索引的类型和作用
3. 常见的SQL优化技巧
4. 主从同步的基本原理流程
5. 常用的SQL函数有哪些
Hbase
MySQL属于单机版应用,不适合存储大量的数据,当需要存储大量数据且要方便存取修改的场景出现时,属于NoSQL阵营的Hbase就需要出来扛大旗了。
Hbase的主要特点是面向列设计的KV存储,在日常工作中,对Hbase的使用也主要是表设计和存取操作,核心的面试题如下:
1. hbase和mysql的主要区别是什么
2. rowkey的设计原则是什么
3. 举一个之前设计rowkey的实际场景案例
4. zookeeper在hbase集群中的主要作用是
5. 常用的hbase指令有哪些
数据分析
数据分析一般分为离线分析和实时分析。由于现在多数公司都构建了自己的数据仓库体系,因此多数离线分析都是通过SQL完成的,常用的框架为Hive和SparkSQL,少部分会使用MapReduce和SparkCore通过编写代码实现。而对于实时数据分析,市面上的框架较多,其中StructedStreaming相对容易上手些。
关键技能面试题如下:
1. hive内部表和外部表的区别
2. hive导入导出数据的几种方式
3. hive自定义函数(UDF)的开发和部署流程?如何创建永久函数
4. 常用的hive窗口函数,并举出一个实例
5. sparksql如何连接hive的元数据
6. spark中宽窄依赖的含义及区别,举几个算子的例子
7. 数据倾斜常见的几种形式及解决方案
8. 如何理解structured streaming的无限增长表
9. 如何理解structured streaming基于事件时间的窗口操作
10. structured streaming不支持的操作有哪些
消息中间件
消息中间件是系统中各应用程序通信的关键通道,其主要作用为应用间解耦、异步操作、削掉高峰、提供缓冲、实时数据传输等。Kafka是最常用的大数据消息队列,通常都会使用它实现实时数据流的接入,其核心面试题如下:
1. kafka的核心基础概念,consumer、consumerGroup、topic、partition、replication等的含义
2. kafka高效文件存储设计的特点
3. kafka消息接收的三种模式是什么
4. 常用kafka命令行指令有哪些
资源管理调度
为了提升分布式集群的资源利用率,通常都会使用资源管理调度框架来对计算资源(如CPU、内存、磁盘、网络等)进行统一管理、分配和调度。hadoop生态,最常用的框架为YARN。对于大数据分析师来说,YARN工作在底层,很少会去直接用到它,但是了解其基本原理对理解计算过程、排查问题,很有帮助。其需要了解的面试题如下:
1. yarn作业两种提交模式的区别
2. 如何查看提交到yarn上的作业的日志
3. 如何杀死一个正在执行的yarn作业
数据可视化
统计分析的结果是由一组数字组成的数据,往往并不直观,因此需要借助可视化工具,将其以图形化的方式呈现出来,这样更容易找出藏在数据间的规律。这类工具有很多,有些公司会基于echarts、highcharts等自主研发可视化工具,也有大厂开放出来的工具,如阿里的datav、百度的sugar,还有一些商用收费软件,如国外的tableau。
数据可视化的技术难度并不大,通常面试时会问一下之前可视化的经验。tableau面向高校学生和老师提供的免费的tableau激活码,学生证书的使用有效期为一年。学生可以申请试用,跟着教程自己尝试做几个可视化报表,面试时绝对是个加分项。
结语:
本文只是初步整理了一些面试技术问题,旨在给未入门或刚入门的同学提供一个学习的方向。
虽然这些问题很容易找到答案,通过刷题和背答案可以很快掌握这些面试题,顺利过关。但是笔者还是希望大家在打基础的阶段尽量多下功夫,打好基本功,带着这些问题去学习,效果会事半功倍。
当然面试前复习下是无可厚非的,如果大家感兴趣可以在留言区留言,我会考虑针对基础核心技术结合在公司长年的面试经验,再整理一个面试题的解题合集(问题+答案+分析过程)。