大数据架构与开发

顾名思义大数据是一个以数据为外围的产业。大数据产业从数据的生命周期的传导和演变上可分为这几个局部:数据收集、数据贮存、数据建模、数据分析、数据变现。

通过各种渠道收集数据,继而通大数据培训过云数据中心贮存,再通过数据科学家或业务进行建模和加工,最初数据分析找到大量看似不相干数据背地的因果关系。这些产生的信息能够作为贵重的资产,帮忙业务决策者对将来进行预测,缩小试错老本,也能够降低成本危险,加强业务竞争力。

目前市场上人才需求观和部署企业本身大数据我的项目来看,大抵分为3个方向:大数据架构、大数据开发、大数据分析。其中数据分析曾经在(link) 中为大家介绍了。

那么本期咱们就聚焦技术要求更硬核的架构与开发职位。

让咱们从目前市场上的需要动手,为大家剖析这两个煊赫一时的岗位。

某顶级独角兽互联网:数据开发工程师

大数据开发

大数据开发并重利用实现,重视服务器端开发、数据库开发、出现与可视化人机交互等连接数据载体和数据加工各个单元以及用户的性能落地与实现。

次要钻研方向

数据库开发:RDBMS、NoSQL、MySQL、Hive等。

数据流工具开发:Flume、Heka、Fluentd、Kafka、ZMQ等。

数据前端开发:HightCharts、ECharts、JavaScript、D3、HTML5、CSS3等。

数据获取开发:爬虫、分词、自然语言学习、文本分类等。

某top互联网公司:资深大数据架构开发

大数据架构

大数据架构并重基建和架构,更多重视的是Hadoop、Spark、Storm等大数据框架的实现原理、部署、调优和稳定性问题,以及它们与Flume、Kafka等数据流工具以及可视化工具联合技巧。再有就是一些工具的商业利用问题,如Hive、Cassandra、HBase、PrestoDB等。

可能将这些概念了解分明,并可能用辩证的技术观点进行组合应用,达到软/硬件资源利用的最大化,服务提供的稳定化,这是大数据架构人才的指标。

次要钻研方向

架构实践:高并发、高可用、并行计算、MapReduce、Spark等

数据流利用:Flume、Fluentd、Kafka、ZeroMQ等

贮存利用:HDFS、Ceph等

软件应用:Hive、HBase、Cassandra、PrestoDB等。

可视化利用:HightCharts、ECharts、D3、HTML5、CSS3等。

大数据架构师对架构层面、数据流层面、存储层面、软件应用层面等都须要做比拟深刻的了解和落地利用。

不难发现大数据开发和架构很多的要害关键词是重合的,但一个次要是开发,一个次要是对于各种大数据技术的加以利用。

开发更重视的是熟练掌握,疾速实现,利用要求的是懂得各种大数据技术性能上的异同,并且在抉择实现形式时候的计划和取舍。大家能够依据本人的状况进行细分,但在面试中是能够兼顾的。

大数据研发面试技术栈

那么如何井井有条的筹备大数据开发架构岗位的面试呢,咱们为大家整顿了6个次要的维度, 能够依据以下的目录查漏补缺。

1. 编程语言和手撕代码

对于大数据来说,咱们有泛滥的工具和框架,Java还是主力编程语言。能够说做大数据,Java是必须要熟练掌握的。那么对于Java的学习,根底、并发、JVM都是重点。

2. 计算机根底

数据结构,包含常见的布隆过滤器,Bitmap,B+树,LSM Tree,跳表。计算机网络常见TCP-IP协定,网络连接。操作系统问题。Linux根底,Linux过程通信和线程通信, 数据库范式等。

3. Hadoop&Spark

MapReduce、YARN、HDFS,Spark几大经典我的项目的概念,实现,关系。经典机制的解说和辨析。

4. 分布式和流计算

分布式实践概念,准则。Zookeeper、Raft的概念和解说。Flink、Storm/Jstorm等流计算框架的比照,特色,应用场景。

5. 存储和音讯队列

非关系存储:Redis、Hbase、Tair、Tbase,这些存储蕴含什么样的数据结构,如何底层实现,有什么数据长久化的形式。一致性哈希

音讯队列:Kafka,包含基本原理,和其余的MQ相比的劣势。实现细节如高阶,低阶消费者API的区别,ack有哪几种。消费者如何Kafka取数据,怎么保障Exactly Once,有序性。

6. 数据仓库与可视化

理解和应用HTML5、CSS3, Tableau作为可视化的工具。如何构建数仓,如何做分层,辨析范式建模和维度建模,星型模型和雪花模型的区别。

面经

一、二轮面:

简答题与算法题

Java:

Java的多态
final关键字,volatile关键字的作用,与synchronized关键字的不同
理解HashMap的内部结构吗?本人实现一个HashMap
HashMap、Hashtable、ConcurrentHashMap的原理与区别
Java实现生产者消费者模型,能够用BlockingQueue阻塞队列
设计模式
Hive:

Hive 根底函数分别,row_number,rank。
Hive窗口函数怎么设置窗口大小,分桶
Hive order by, sort by, distribute by, cluster by 区别,应用场景
Hive map,reduce数怎么设置
Hive SQL数据歪斜起因和优化
Hive数据抉择的什么压缩格局
Hive的udf、udaf和udtf理解过吗?本人有没有写过udf
join操作底层的MapReduce是怎么去执行的
MapReduce&Spark:

MapReduce的作业流程,波及到几次排序
Spark工作执行过程
MapReduce Shuffle 和 Spark Shuffle的区别,bypass
Spark的内存治理模型
Spark应用中遇到什么问题,怎么解决的
深刻面:

场景设计和简历我的项目

Hadoop,Spark我的项目源码,底层实现机制,在我的项目中的使用比照。

零碎设计如,实时PV,UV统计,实时TOP N 统计,广告曝光流和点击流实时join。设计一个统计各渠道用户留存的模型。

设计,设计一个RPC框架,我看你简历上做过,谈谈思路,观察者模式讲一下,并发容器。

设计,当初有一个RPC框架,须要应用线程池,屡次复用socket,TCP,怎么传递命令。变相考hadoop,应用操作码。

场景设计:性能足够好的电脑,大CPU大内存,网卡性能差,如何优化?

场景设计:一个加载在内存里的HashMap,Key和Value全是int,从硬盘读进来只做查问不做批改,不思考查问效率,尽可能进步空间效率,略微考虑一下工夫效率。

大数据岗位举荐

数据开发和架构相比一般的前后端开发网岗位,有着较强的针对性,面经中也有许多经典的题目。除了算法功底过关之外,有针对性的对大数据框架进行学习,练习和深挖都是十分有必要的。如果可能对驰名开源我的项目有本人的奉献,如成为spark的排名靠前的提交者,那么就能有很好的背书。