文章目录

  • 引言
  • 第一剑「总决式」功能概述(三句话左右概况,简明扼要)
  • 第二剑「破剑式」项目周期(开发时长和人员配置)
    • 开发时长:
    • 人员配置
  • 第三剑「破刀式」技术架构(技术选项及框架版本)
  • 第四剑「破枪式」集群规模(业务数据量及服务器配置和数量)
    • 如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)
    • 服务器使用物理机还是云主机?
  • 第五剑「破鞭式」数据来源及数据采集
  • 第六剑「破索式」数据ETL(可能离线、可能实时)
  • 第七剑「破掌式」业务报表分析(离线报表、实时报表)
  • 第八剑「破箭式」数据分析引擎(Hive、Impala、Es、Spark、Flink等)
  • 第九剑「破气式」项目问题(数据倾斜、OOM或性能优化等)
  • 总结

引言

大家好,我是ChinaManor,直译过来就是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。

在萌新准备出去面试之前,需要针对每个大数据项目,
需整理一套属于自己基础知识,必须熟记于心,招式烂熟于心,方能无剑胜有剑!
(敲黑板) 面经源于真实10年开发经验的讲师所授,笔者只是将其写成了博客

=== 下面以某智慧物流大数据平台项目为例: ===

第一剑「总决式」功能概述(三句话左右概况,简明扼要)

本项目涉及的业务数据包括订单、运输、仓储、搬运装卸等物流环节中涉及的数据、信息。由于多年的积累、庞大的用户群,每日的订单数上千万,传统的数据处理技术已无法满足企业需求。因此通过大数据分析可以提高运输配送效率、减少物流成本,更有效地满足客户服务要求,并对数据结果分析,提出具有中观指导意义的解决方案。

第二剑「破剑式」项目周期(开发时长和人员配置)

开发时长:

六个月左右

阶段划分
需求调研、评审(4周)
设计架构(1周)
编码、集成(12周)
测试(2周)
上线部署,试运行,调优(3周)

人员配置

开发人员: 6人
职责划分:
前端(JavaWeb+前端 2人)
大数据开发(3人)
运维(1人)

第三剑「破刀式」技术架构(技术选项及框架版本)

  1. 业务系统数据主要存放到Oracle和MySQL数据库中,比如CRM系统数据在MySQL,OMS系统数据存放在Oracle中;
  2. OGG增量同步Oracle数据库的数据,Canal增量同步MySQL数据库的数据;
  3. OGG及Canal增量抽取的数据会写入到Kafka集群,供实时分析计算程序消费;
    实时分析
  4. 实时分析计算程序消费kafka的数据,将消费出来的数据进行ETL操作;
  5. 为了方便业务部门对各类单据的查询,StructuredStreaming流式处理系统将数据经过ETL处理后,将数据写入到Elasticsearch索引中;
  6. StructuredStreaming流处理会将数据写入到ClickHouse,Java Web后端直接将数据查询出来进行展示,例如:将运输车辆的GPS位置数据实时展示到GIS地图;
  7. StructuredStreaming将实时ETL处理后的数据同步更新到Kudu中,方便进行数据的准实时分析、查询,Impala对Kudu数据进行即席分析查询;
  8. 前端应用对数据进行可视化展示,比如数据服务接口或大屏实时刷新;

第四剑「破枪式」集群规模(业务数据量及服务器配置和数量)

此处数据量,需参考实际需要酌情考虑

如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)

每天日活跃用户100万,每人一天平均100条:100万*100条=10000万条(1亿)

每条日志1K左右,每天1亿条:100000000/1024/1024=约100G
半年内不扩容服务器来算:100G*180天=约18T

保存3副本:18T3=54T
预留20%-30%Buf=54T/0.7=77T
因此:约8T
10台服务器

 如果考虑数仓分层?
服务器将近在扩容1-2倍

服务器使用物理机还是云主机?

 机器成本考虑:
 物理机:以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,单台报价4W出头,需考虑托管服务器费用。一般物理机寿命5年左右
 云主机,以阿里云为例,差不多相同配置,每年5W
 运维成本考虑:
 物理机:需要有专业的运维人员
 云主机:很多运维工作都由阿里云已经完成,运维相对较轻松

第五剑「破鞭式」数据来源及数据采集

第六剑「破索式」数据ETL(可能离线、可能实时)

第七剑「破掌式」业务报表分析(离线报表、实时报表)

  • 第一点:传统报表分析,各个主题报表

    • 数据倾斜、大表与大表关联、OOM内存溢出等等
  • 第二点:Impala 即席查询,SQL语句
  • 第三点:ClickHouse 实时OLAP分析

第八剑「破箭式」数据分析引擎(Hive、Impala、Es、Spark、Flink等)

  • Hive:底层MapReduce框架,“稳”
  • SparkSQL:集成Hive或集成Kudu,分析数据,当然也是用StructuredStreaming
  • Impala、ClickHouse:实时OLAP分析框架

第九剑「破气式」项目问题(数据倾斜、OOM或性能优化等)

  • 抛出问题,如何解决(自己解决)
  • 常见性能优化,背下来:Hive性能优化、Spark性能优化(原理性东西)

例:如何避免Spark数据倾斜?
避免Spark数据倾斜,一般是要选用合适的 key,或者自己定义相关的 partitioner,通 过加盐或者哈希值来拆分这些 key,从而将这些数据分散到不同的 partition 去执 行。如下算子会导致 shuffle 操作,是导致数据倾斜可能发生的关键点所在: groupByKey;reduceByKey;aggregaByKey;join;cogroup;

总结

以上便是十年项目经验面试官亲传大数据面试独孤九剑~

愿你读过之后有自己的收获,如果有收获不妨一键三连一下~

十年项目经验面试官亲传大数据面试__大数据面试独孤九剑相关推荐

  1. 抓住「金九银十」的尾巴!技术面试如何准备,谷歌面试官亲授

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源@新智元 [导读]有位外国小哥在自己的博客上通过解答一道面试题,发布了自己在谷歌担任工程师和面试官 ...

  2. 字节跳动资深面试官亲述:java进阶篇

    准备好套路 **①自我介绍:**千万不能筐瓢,一定要牢记,自然流畅地介绍自己的学习经历.工作经历.项目经历.个人优势等等: **②抽象概念:**当面试官问你是如何理解多线程的时候,你要知道从定义.来源 ...

  3. Google面试官亲授Java面试课程

    第1章 课程引言 校招主要考察的是基础知识和编程能力,介绍校招总体大致录取率.详细介绍本课程的学习目标,课程安排,最后演示谷歌在线笔试. 第2章 操作系统 本章从操作系统最常见的问题,进程vs线程入手 ...

  4. 程序员去大公司面试,阿里P8面试官都说太详细了,社招面试心得

    我的移动开发春季历程 没有稳定的工作,只有稳定的能力. 春天,又到了万物复苏的季节,在程序猿这个行当里,作为 Android 开发出生的我,在经历了5年的脱发生涯后,现在更多的是称呼自己为移动开发攻城 ...

  5. 牛皮了!字节面试官爆肝七天七夜总结的字节必备算法面试笔记!!

    最近,有个朋友,他坚持刷题2个月,终于去了他梦寐以求的大厂,薪资涨幅非常可观,期间面字节跳动还遇到了算法原题...并表示目前国内的大厂和一些独角兽,已经越来越效仿硅谷公司的做法,通过面试给定题编程,来 ...

  6. JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?

    因为热爱所以坚持,因为热爱所以等待.熬过漫长无戏可演的日子,终于换来了人生的春天.他逐渐被人熟知,被人喜爱 三年前,在苏州园区某个国企面试,第一道题目便是:JVM是什么吗?然后就是拿着笔试题目被面试官 ...

  7. 面试官说我的简历像包装的,面试后面试官向我道歉了

    都2021年了,你的工资涨了吗? 小编的一个朋友入职现公司一年半了,领导丝毫没有要给他涨工资的想法.这不,马上赶上金三银四的黄金跳槽阶段,小编的朋友就去试了试水,结果铩羽而归,找我一顿吐槽. 现在面试 ...

  8. 字节跳动资深面试官亲述:java淘宝客教程视频

    前言 Java是目前应用最为广泛的软件开发平台之一.随着Java以及Java社区平台的不断壮大,Java也早已不再是简简单单的一门计算机语言了,它更是一个平台.一种文化.一个社区. 作为一个平台,Ja ...

  9. 阿里面试官亲述:如何利用设计模式改善业务代码

    在业务部门的开发中,大多数的我们在完成的业务的各种需求和提供解决方案,很多场景下的我们通过 CRUD 就能解决问题,但是这样的工作对技术人的提升并不多,如何让自己从业务中解脱出来找到写代码的乐趣呢,我 ...

最新文章

  1. Web安全(下)---主动类安全产品技术分析
  2. 理解浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
  3. Web前端工作笔记003---Javascript 解决IE8不支持filter、map的方法
  4. 读写分离方案_项目读写分离方案
  5. mysql有则修改无则添加_通过sql实现无则插入有则修改(MySQL)
  6. Java中SimpleDateFormat用法详解
  7. 通讯录c语言链表实验报告,通讯录管理系统数据结构C语言版链表实现实验报告(31页)-原创力文档...
  8. java 8 stream入门_跟上 Java 8 : Stream API 快速入门
  9. pdsh@xxxx: localhost: connect: Connection refused
  10. 腾讯云开发低代码平台初探
  11. 中文编程发展与兴起的重要意义
  12. java 系统api_java实现-强智教务系统API文档-时间信息
  13. Win32汇编 - 基本知识总结
  14. python提取内容保存excel_Python操作Excel之数据提取
  15. json转义问题(消除反斜杠及{}外面多余的“)
  16. ICMAX解析闪存芯片中原片、白片、黑片如何来的,在SSD中有什么影响
  17. hdu2838(树状数组)
  18. C# 取高8位或低8位
  19. IT时代周刊:IBM中国10年转型
  20. XenMobile目录遍历任意文件读取(CVE-2020-8209)

热门文章

  1. [转载] 七龙珠第一部——第030话 神秘军团
  2. 斐讯K2(PSG1218)打开telnet及刷机
  3. java中的IO操作总结
  4. 什么是图灵完备性(Turing complete)?
  5. 轻量级Qt键盘-更新谷歌汉字库
  6. 类和对象(中)——构造函数介绍
  7. RockChip Uboot向Kernel传递参数
  8. 2.1.4符号常量和const常量
  9. 计算机云的使用方法,如何使用傲软投屏
  10. av_write_frame 与 av_interleaved_write_frame