大数据笔试真题——第一章:通用面试题

试题总体概述

面试题包含时下流行的多个大数据工具和概念(spark、sparkStreaming、kafka、hadoop、hive、hbase、redis、flume、sqoop、zk、azkaban、kylin、Elatic Search)的原理介绍、实战总结、调优方式等,我会不间断的更新,维护,希望可以对正在找大数据工作的朋友们有所帮助.

第一章目录

第一章 通用

1.1 数据倾斜

当某个job长时间运行没有结束,可能发生了数据倾斜。

1.1.1 hive

设置map端聚合和二次group by保证reduce数据大概平均,然后再设置reduce数量减少每个reduce的数据量

尽量少用distinct,不仅吃不到map端聚合(distinct原理是全局排序去重),而且多个distinct也吃不到二次group的优化。

如果group by 多个字段,或者其它二次group失效的情况,可以走下方spark的解决方案,将hql分多个hql来做。

1.1.2 Spark

比起hive来说,spark对数据倾斜的优化可以更细一些(也可以说更麻烦些)。

  1. 先用sample(false,0.x)采样key,找出倾斜的key
  2. 把数据集拆成倾斜的部分和不倾斜的部分,不倾斜的部分走正常流程
  3. 倾斜的部分key前面加上一个定长的随机字符串,然后执行重分区
  4. 重分区后进行一个聚合操作,然后去除定长前缀再聚合一次。
  5. 如果是大表join大表,其中一个表有数据倾斜,就需要用膨胀法,将倾斜部分的key加上一个0-n的前缀,一条数据膨胀成n条,然后将另一个表的这部分key也加上相应的前缀,然后单独对这部分数据进行一次双重聚合,与不倾斜的数据进行union操作,完成聚合。
  6. 空值看作是特殊的key,空值多了一样用3的方法去解决。

1.2 海量数据

1.2.1 如何调优

  1.抽样检测分组字段,看看是否有倾斜
  2.如果没有倾斜,就正常增加reduce数量,设置中间ORC+SNAPPY压缩
  3.如果有倾斜,把倾斜的部分过滤出来加前缀打散处理,不倾斜的部分正常处理。
  4.如果是大表join小表,大表倾斜,可以使用map端join方法,小表倾斜直接无视。
  5.如果是大表join大表,某表倾斜,可以使用膨胀法处理。

1.2.2 实时排序

跳表法快速排序

  将值域划分区间建有序链表,原本海量的遍历会被压缩N倍。每个值域对应一个有序链表,因此是双重链表。
  前提:除了跳表外还有一张作品表,以作品id为key,value含分数
  值变更时,先查询作品表更新原值,通过原值到对应区间的链表中删除该值,新值插入对应区间的链表中。
  求排名:1.每个区间链表除了保存作品和分数外,还额外维护一个区间总长
          2.每次新值插入时,都将原区间总长-1,新区间总长+1
          3.求排名时遍历第一层链表将区间总长累加,然后遍历该值所在的区间求出区间内排名,两者相加。
          
  求TopN:第二层链表一路往下走N个。
  缺点:事实上所有针对数据直接排序的方式都存在锁问题,每次更新只能有一个线程做,否则必然会乱。

平衡二叉树排序

  假设总分为5                 [0,5]
  1.将总分一分为二            [0,2],[3,5]
  2.将划分的部分继续二分      [0,1],[1,2],[3,4],[4,5]
  3.重复2直到划分到底         [0,0],[1,1],[2,2],[3,3]...
  ​
  采用链表的方式从顶点往下一路关联起来,每个区间key对应一个人数value。
  假设有某个值从2变成3。
  先从顶点开始往下遍历查找[2,2],遍历过程中经过的节点人数全部-1,终点[2,2]的人数也-1;
  然后从顶点开始往下遍历查找[3,3],经过的节点人数全部+1。终点也+1。
  求排名
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据面试笔试资料-56家互联网大公司面试笔试资料整理汇总: hive面试.doc 京东.jpg 笔试1.docx 笔试10.jpg 笔试11.JPG 笔试12_搜狐 笔试13_九章云极科技有限公司 笔试14_北京东方国信科技股份有限公司-联通事业部-笔试 笔试15_百分点 笔试16_Admaster 笔试2.docx 笔试3.docx 笔试4_boss直聘.docx 笔试5_面试4的实现思路.docx 笔试6.jpg 面试总结 面试1.doc 面试2.doc 面试3.doc 面试7+面试8+面试9_北京广视通达数字网络科技有限公司 中企动力面试总结?-面试1 畅捷通(用友集团)?-面试2 麦达数字面试?-面试3 boss直聘面试?-面试5 博易智软(北京)技术股份有限公司?面试7 公安部第一研究所?面试7 IBM?面试7 车网互联?面试7 凯立德科技股份有限公司?面试7 北京捷通华声语音技术有限公司?面试7 北京法意科技有限公司?面试7 大树科技(重点)?面试7 北京XXX宇有限公司??面试8 盛世全景?面试8 华胜天成?面试8 联龙博通?面试8 大麦网?面试9 京东金融?面试10 滴滴打车 架构师?面试11 神州?面试11 百分点科技?面试11 锐安科技?面试12---有笔试 人人贷?国舜科技?面试13 宜信?面试16 明略数据?面试17 爱奇艺面试面试18---爱奇艺明确有背景调查,记在面试评测上面,由hr写背景调查评测----(直接卡死了) 奥维云网?面试26 喜马拉雅FM?中星电子?银橙传媒?面试27 电信云计算?面试29 乐视?面试29 优酷?面试29 无双科技公司?面试30 亿玛在线公司?面试30 58同城?面试30 talkingDate?面试30 慕华信息科技有限公司?面试30 美团网?面试31 LeanCloud?面试31 筑巢新游?面试31 阿里巴巴?面试32 博睿宏远?面试33 融易通?面试33 中国互联网络信息中心?面试33? 优酷土豆?面试33 乐视?面试41 TalkingData?面试41 网德天下?面试41 东方国信?面试41 畅捷通?面试41 太极?面试41 北京四中网校?面试41 SenseTime?面试41 易观智库?面试41 银创科技?面试41 京东?面试41 壕鑫互连?面试41 滴答拼车?面试41

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值