大数据面试个人总结


(个人总结,最好只做参考,这是我自己被问到的一些面试题)

1.列举几个sql调优的方法

  1. 创建索引
  2. 避免在索引上使用计算
  3. 使用预编译查询
  4. 调整where字句中的连接顺序
  5. 尽量将多条sql压缩到一条sql中
  6. 使用表的别名
  7. 用where代替having
  8. 考虑使用临时表存放中间结果

2.主键和外键的优缺点

主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。主键对于用户是没有意义的,设置主键是为了提高连接和查询的效率
外键:外键用于关联两个表。外键保持数据一致性(保证数据的引用完整性)但是更新子表或者删除子表数据都会去主表判断一下,这是个隐式操作,拖累系统,性能很差。

3.hive和mysql的区别

查询语言不同:hive是hql语言,mysql是sql语句
数据存储位置不同:hive是把数据存储在hdfs上,mysql数据库是存储在自己的系统中
数据格式:hive数据格式可以用户自定义,mysql有自己定义的格式
数据更新:hive不支持数据更新,只能读,不能写,mysql支持数据更新
索引:hive没有索引,因此查询数据的时候是通过MapReduce把数据都查一遍,也造成hive速度慢的原因,mysql有索引
延迟性:hive延迟性高,mysql延迟低
数据规模:hive存储的数据量超级大,mysql知识存储一些少量的业务数据
底层执行原理:hive底层是用MapReduce,mysql是excutor执行器
在这里插入图片描述

4. hive排序关键字有哪些,有什么区别?

order by 会对输入做出全局排序,因此只有一个reduce
sort by 不是全局排序,其在数据进入reduce前完成排序,只能保证输出有序,全局无序
distribute by 按照指定字段对数据进行划分到不同的输出reduce /文件中
cluster by 具有distribute by和sort by的功能 排序只能是倒序,不能指定排序规则asc或desc

5.rdd的特性 5个

一组分片(Partition)/一个分区(Partition)列表,即数据集的基本组成单位
一个函数会作用在每一个分区
一个RDD会依赖于其他多个RDD
可选项,对于KV类型的RDD会有一个Partitioner,即RDD的分区函数
可选项,一个列表,存储存取每个Partition的优先位置

6.ACK机制

ACK即是确认字符,在数据通信中,接受站发给发送站的一种传输类控制字符.表示发来的数据以确认 接收无误
kafka在发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到。
Kafka的ACK的机制有三种0,1,-1
0 producter不会等待broker发送ack,风险很大,不建议设置
1 当leader接收到消息之后发送ACK,效率高,但是有几率丢失消息
-1 当所有的follower都同步消息成功后发送ACK,延迟比较高,面对海量数据,如果每条消息都要确认效率会大大降低

7.spark中map和foreach的区别

map是在Transformation转化操作
foreach 属于action运算操作
map操作后会返回一个新的RDD
foreach没有返回值

8.spark缓存机制

Spark提供了在RDD中持久化数据的机制.
第一次调用动作并计算出RDD内容后,RDD内容可以缓存在集群的内存或磁盘上
这样下一次调用依赖该RDD的动作时,就不需要从依赖关系中重新计算RDD,数据可以从缓存分区中直接返回

9.spark缓存有几种,区别是什么?

spark缓存有两种 cache()和persist()
cache调用了persist,而且只有一个默认的缓存级别MEMORY_ONLY
persist可以根据情况设置其他的缓存级别

10.spark缓存级别

MEMORY_ONLY
MEMORY_ONLY_SER
MEMORY_AND_DISK
MEMORY_AND_DISK_SER
DISK_ONLY

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值