hadoop面试题整理(四)

一. 问答题:

1. 用mapreduce实现sql语句select count(x) from a group by b?


2. 简述MapReduce大致流程,map -> shuffle -> reduce


3. HDFS如何定位replica


4. Hadoop参数调优: cluster level: JVM, map/reduce slots, job level: reducer, memory, use combiner? use compression?


5. hadoop运行的原理?


6. mapreduce的原理?


7. HDFS存储的机制?


8. 如何确认Hadoop集群的健康状况?


二. 思考题
现有1 亿个整数均匀分布,如果要得到前1K 个最大的数,求最优的算法。(先不考虑内存的限制,也不考虑读写外存,时间复杂度最少的算法即为最优算法)
我先说下我的想法:分块,比如分1W块,每块1W个,然后分别找出每块最大值,从这最大的1W个值中找最大1K个,那么其他的9K 个最大值所在的块即可扔掉,从剩下的最大的1K 个值所在的块中找前1K个即可。那么原问题的规模就缩小到了1/10。
问题:
(1) 这种分块方法的最优时间复杂度。

(2) 如何分块达到最优。比如也可分10W 块,每块1000 个数。则问题规模可降到原来1/100。但事实上复杂度并没降低。

(3) 还有没更好更优的方法解决这个问题。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值