面试中必须要会的知识点

1、项目都分析过哪些业务模型

参考各个需求文档:

  • 离线的报表(展示量,点击量,点击率,参与竞价数,竞价成功数,消费)
  • 终端设备分析(运营商,联网方式,操作系统,客户端)
  • 渠道分析
  • 媒体分析
  • 统一用户识别
  • 数据标签化
  • 用户上下文标签合并
  • 图计算再次合并标签
  • 把标签存入HBase,再次合并标签 --> 数据到了HBase以后,就到了精准营销部门

2、项目中的知识点

1)parquet文件存储(列式存储)

a、可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量

b、压缩编码可以降低磁盘存储空间,由于同一列的数据类型是一样的,可以使用不同的压缩编码。

c、只读取需要的列,支持向量运算,能够获取更好的扫描性

d、parquet 适配多种计算框架,查询引擎(Hive,Impala,Pig,IBM Big SQL);计算框架(MapReduce,Spark,Kite,Cascading等等);数据模型(Avro,Thrift,Protocol Buffers等)

2)Spark算子运算

Map,flatMap,filter,case,groupBy,reduceByKey等。

3、面试中最常问的问题

1)首先简单的介绍一下自己的情况(一分钟的自我介绍)
2)介绍一下项目的情况(主要想观察你对项目了解多少)

答:我们做过一个DMP项目,用户画像,根据用户社会的一些特有属性,生活的习惯和一些消费行为等信息,从而抽象出一个标签化的用户模型。通过用户的调研去了解用户,然后根据他们的目标,行为和和观点的差异,将他们分为不同的类型,从而可以做一些精准的营销。

3)你们的这个项目用到哪些技术?用的是哪些版本?

答:

hadoop:2.7.5

Spark:Spark1.6.3

Java:java8

Scala:Scala2.11

4)你在开发过程中遇到了哪些问题?

答:

5)你们开发团队有多少人并说说他们干的什么活?小团队

答:一般是6 - 7人的团队

一个人运维

一个人ETL的活和Hive

两个Spark的活

一个前端

一个领导

一个实习生

6)你在公司里干什么活?平时做的项目需求?


7)说说你的上一家公司?一定不要说上一家坏话


8)为什么要离职?


9)你说说对我们公司的认识?(小公司会问)


10)你未来两到三年的规划?


11)你们这个项目写了多少行代码?一共多少个文件?写了多长时间?

答:

40多个文件,每个大概是70 - 100行左右

12)你们公司的集群多大,配置如何?(50个节点以内)

答:

一共18太节点

128G内存,(20 + 2 * 1T) 浪潮/戴尔/联想/IBM

20(数据盘)+2(系统)块硬盘 * 1 T(一个节点,一台机器)

13)你们公司有测试集群吗?多大?

答:

50个节点 -> 4台测试

20个节点 -> 3台测试(HA,分布式的效果)

14)每天的数据量有多大?压缩前后比例是3:1

答:

压缩前:150G左右

压缩后:40G左右

15)每天有多少条数据?

答:


16)每条数据多大?

答:

4KB左右

17)每条数据有多少个字段?

答:

90个字段

18)你们的数据保留周期是多少?

答:

一个月

集群一定要存的下这个值:(30 * 每天的数据量 * 3个副本)

20)你们公司一天跑多少个脚本?

答:

60左右,20个是常态化的脚本

21)跑一个脚本需要多长时间?

答:

5分钟左右

3-6分钟:太快了吧 。(我们调优做得好,我们集群性能也不错)

10分钟:太慢了吧。(我们集群性能不是很好)

22)当一个项目问到了一些需求?

答:

实在说你清楚的时候,就说是同事做的

23)必须要会的代码(具有一票否决权)

答:

手写冒泡排序

手写wordcount

手写单例模式








猜你喜欢

转载自blog.csdn.net/qq_41851454/article/details/80377429