Interview Summary

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
1,请简述你常用的Linux命令.
# df -h, free...

2. 大数据的特点是什么?
# 5V(大多值快信)

3. namenode是如何管理datanode的?
# 心跳机制, 副本机制, 负载均衡.

4. HDFS的默认副本数是3, 那么这3个副本是如何存储的呢?

5. Hive的三种部署方式, 内嵌模式, 本地模式, 远程模式的区别是什么?
# 需不需要手动开启metastore(元数据服务)
# 是否可以使用第三方的数据库
# 是否可以实现共享...

内嵌模式: 不需要, 不能, 不能.
本地模式: 不需要, 能, 能(metastore服务不能, MySQL可以共享)
远程模式: 需要, 能, 能(metastore, mysql)

6. 请简述数据库 和 数据仓库的区别是什么?
# OLTP 和 OLAP的区别.

7. 数仓的特点是什么?
# 4个.

8. 请简述你对数仓分层的理解?

9. ETL 和 ELT的区别是什么?

10. 内部表 和 外部表的区别是什么?

11. 请简述分桶表的分桶原理是什么?
# 哈希分桶法.

12. 分区表 和 分桶表的区别是什么?
区别:
1. 字段选择.
分区字段必须是表中没有的字段, 分桶字段必须是表中有的字段.
2. 作用.
分区 = 分文件夹 # 降低扫描次数
分桶 = 分文件 # 减少join次数
相同点:
都是为了提高查询效率.


13. cluster by, distribute by, sort by, order by 它们之间的区别是什么?


14. 请简述你对 四舍五入原理的理解?
# +0.5, 然后求地板数.

15. 请手写1个行列转换代码.

16. 请简述 namenode如何管理元数据?
# Edits文件, FsImage文件.

17. 请简述 SecondaryNameNode如何辅助namenode管理元数据?


18. 请简述HDFS的写数据的流程.


19. 请简述HDFS的读数据的流程.


20. MR程序的完整执行流程.


21. Yarn的三大调度策略.

22. Yarn调度job的流程.
# Yarn调度MR程序的流程.

23. 请简述你对Hive调优的理解.
# 数据压缩, 数据存储格式, join优化, group by数据倾斜.

24. 请简述ZK集群是如何完成主备切换的?
# watch监听机制 + 临时节点

25. 请简述你对ZK的 选举机制的理解?

26. 请简述你对SSH(非对称加密协议)免密登陆的理解.
# 公钥加密, 私钥解密.

p9bERJO.png

大数据处理流程

工作流调度: //即: 周期性执行 重复性执行
数据源 => 数据采集 => 数据存储 => 数据分析 => 数据应用

数据源:

1. 关系型数据库:mysql、oracle等
​	2. 日志文件:应用日志、业务日志、用户行为日志
​	3. 爬虫数据
​	4. 其他

OLTP系统
​ 典型代表: RDBMS(关系型数据库管理系统 如MySQL ORACLE)
​ 存储: 用于支撑业务平台顺利实施的各种业务数据
​ 内容: 用户数据、商品数据、订单存储、评论数据等
Log Files(日志文件)
​ 用户行为数据:
​ 用户在平台上所有的操作行为,如注册、登陆、浏览、收藏、添加购物车、搜索、支付等
​ 服务器或应用日志数据:程序应用运行日志 服务器运行日志
Crawler Data(爬虫数据)
​ 主要根据实际的数据需求,爬取其他网站的数据
​ 存储格式:文件、关系型数据库表

2. 数据采集

​ //关于具体含义要结合语境具体分析,明白语境中具体含义即可。
​ 数据采集概念,目前行业会有两种解释
​ 1. 数据从无到有产生的过程(服务器打印的log、传感器采集的数据等)叫做数据采集;
​ 2. 把通过使用Flume等工具把数据采集搬运到指定位置的这个过程叫做数据采集。

3. 数据存储

​ 大数据应用下,几乎都是分布式存储软件。多台机器共同存储,分区机制、副本机制是核心的概念。

4. 数据分析

​ 数据分析是指用适当的分析方法及工具,对处理过的数据进行分析,提取有价值的信息,形成有效结论的过程。
​ 由于数据分析多是通过软件来完成的,这就要求数据分析师不仅要掌握各种数据分析方法,还要熟悉数据分析软件的操作。

5. 数据应用

Data Report //数据报表,用表格、图型等格式来动态显示数据。
Data Visualization //数据可视化主要指在借助于图形化手段,清晰有效地传达与沟通信息。
Ad Hoc: //即席查询。是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
Data Mining: //数据挖掘。是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。

CM 和 CDH的区别:

C //指的是Cloudera商业公司, 大数据中排名第一的商业公司
CM //Cloudera Manager 大数据集群安装部署的软件
CDH //Cloudera’s Distributed Including Apache Hadoop, Cloudera发布的商业版本Hadoop生态圈软件.

OLTP系统可以直接开展数据分析吗?

答案: 可以,但是没必要.

  1. OLTP系统的核心是面向业务,支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。
  2. 如果在OLTP环境直接开展各种分析,有以下问题需要考虑:
    A. 数据分析也是对数据进行读取操作,会让读取压力倍增.
    B. OLTP仅存储数周或数月的数据.
    C. 数据分散在不同系统不同表中,字段类型属性不统一.