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(非对称加密协议)免密登陆的理解.
# 公钥加密, 私钥解数仓项目需求评估
需求本质:
通过对相关数据的处理和分析, 提取隐藏在数据中的价值, 为公司赚更多的钱
大数据是"锦上添花"这也是公司为什么愿意花钱招人, 买装备投入大数据的核心原因.
数据分析:
对公司中的业务数据进行分析处理, 提取业务需求计算各种指标, 实现运营支撑.赚取的实现途径: 买卖产品 和 服务.
需要更多新客户.方式: 推广拉新 指标: 广告播放量, 点击量, 注册量, 推广渠道成本占比, 转化比等.
让新用户消费方式: 优惠券, 现金券等优惠活动(首单优惠30%, 满100减20) 指标: 登陆次数, 收藏次数, 加入购物车次数, 首单转化率//推荐系统: 基于对用户数据的分析, 构建用户画像, 精准把握用户需求, 实现精准推荐. //兴趣爱好: 颜色, 品牌, 价格区间, 之前购买信息, 当前搜索浏览信息
让老用户留存方式: 解决用户痛点, 迎合用户兴趣点 //用户标签 指标: 退款次数, 好评数, 差评数, 留存率, 不同终端成交占比.
降低运营成本指标: 销售收入, 成交额, 退款额, 在细分不同维度不同粒度(不同渠道, 不同终端, 不同地区, 不同日期)风控系统: 安全领域, 金融领域 //统计分析一个恶意方位, 拦截和屏蔽恶意访问 //信用风控
数据表介绍:
1、订单相关表
订单主表 //t_shop_order 订单副表(订单详情表) //t_shop_order_address_detail 订单组表 //t_shop_order_group 订单组支付表 //t_order_pay 订单结算表 //t_order_settle 订单配送表 //t_order_delivery_item 退款订单表 //t_refund_order 订单评价表 //t_goods_evaluation 商品评价表 //t_goods_evaluation_detail 订单商品快照表(订单和商品的中间表) //t_shop_order_goods_details 交易记录表 //t_trade_record
2、店铺相关
店铺表 //t_store 商圈表 //t_trade_area 地址表 //t_location 区域字典表 //t_district
3、商品相关
商品表 //t_goods 商品分类表 //t_goods_class 品牌表 //t_brand 商品收藏表 //t_goods_collect
4、用户相关
登录日志表 //t_user_login 店铺收藏表 //t_store_collect 购物车表 //t_shop_cart
5、系统配置相关
时间维度表 //t_date
6、其他(广告/促销/配送)
大数据处理流程
工作流调度: //即: 周期性执行 重复性执行 数据源 => 数据采集 => 数据存储 => 数据分析 => 数据应用
数据源:
1. 关系型数据库:mysql、oracle等 2. 日志文件:应用日志、业务日志、用户行为日志 3. 爬虫数据 4. 其他 OLTP系统 典型代表: RDBMS(关系型数据库管理系统 如MySQL ORACLE) 存储: 用于支撑业务平台顺利实施的各种业务数据 内容: 用户数据、商品数据、订单存储、评论数据等 Log Files(日志文件) 用户行为数据: 用户在平台上所有的操作行为,如注册、登陆、浏览、收藏、添加购物车、搜索、支付等 服务器或应用日志数据:程序应用运行日志 服务器运行日志 Crawler Data(爬虫数据) 主要根据实际的数据需求,爬取其他网站的数据 存储格式:文件、关系型数据库表
2. 数据采集
//关于具体含义要结合语境具体分析,明白语境中具体含义即可。 数据采集概念,目前行业会有两种解释
-
数据从无到有产生的过程(服务器打印的log、传感器采集的数据等)叫做数据采集;
-
把通过使用Flume等工具把数据采集搬运到指定位置的这个过程叫做数据采集。
-
3. 数据存储
大数据应用下,几乎都是分布式存储软件。多台机器共同存储,分区机制、副本机制是核心的概念。
4. 数据分析
数据分析是指用适当的分析方法及工具,对处理过的数据进行分析,提取有价值的信息,形成有效结论的过程。 由于数据分析多是通过软件来完成的,这就要求数据分析师不仅要掌握各种数据分析方法,还要熟悉数据分析软件的操作。
5. 数据应用
Data Report //数据报表,用表格、图型等格式来动态显示数据。 Data Visualization //数据可视化主要指在借助于图形化手段,清晰有效地传达与沟通信息。 Ad Hoc: //即席查询。 是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。 即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。 Data Mining: //数据挖掘。 是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、 在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
新零售项目架构
数据源(OLTP-MySQL) => Sqoop(数据抽取) => 数据存储(HDFS, ODS, DW, DM, RPT) => 计算引擎(Presto, Hive) => OLAP-MySQL => VueJS(数据可视化), SpringBoot(对外接口) 解释: 数据源: //业务系统的Mysql数据库 数据抽取: //使用Sqoop实现关系型数据库和大数据集群的双向同步 数据存储: //HDFS 计算引擎: //Hive、Presto 数据同步: //Sqoop 工作流调度: //Oozie
CM 和 CDH的区别:
C //指的是Cloudera商业公司, 大数据中排名第一的商业公司 CM //Cloudera Manager 大数据集群安装部署的软件 CDH //Cloudera's Distributed Including Apache Hadoop, Cloudera发布的商业版本Hadoop生态圈软件.
OLTP系统可以直接开展数据分析吗?
答案: 可以,但是没必要.
-
OLTP系统的核心是面向业务,支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。
-
如果在OLTP环境直接开展各种分析,有以下问题需要考虑: A. 数据分析也是对数据进行读取操作,会让读取压力倍增. B. OLTP仅存储数周或数月的数据.