面试题总结及数仓项目介绍
Interview Summary
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(非对称加密协议)免密登陆的理解.
# 公钥加密, 私钥解数仓项目需求评估
CM 和 CDH的区别:
C //指的是Cloudera商业公司, 大数据中排名第一的商业公司 CM //Cloudera Manager 大数据集群安装部署的软件 CDH //Cloudera's Distributed Including Apache Hadoop, Cloudera发布的商业版本Hadoop生态圈软件.
OLTP系统可以直接开展数据分析吗?
答案: 可以,但是没必要.
-
OLTP系统的核心是面向业务,支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。
-
如果在OLTP环境直接开展各种分析,有以下问题需要考虑: A. 数据分析也是对数据进行读取操作,会让读取压力倍增. B. OLTP仅存储数周或数月的数据.