bigdata hadoop 面试问题二
补充: mapreduce 、hive. 为什么不用mapredeuce,用hive? 1.MapReduce is hard to program. 2.No Schema,lack of query ?lanaguager. eg.SQL 后面facebook 开源了一个hive的框架,它是基于hadoop的。 what is hive?
Hive Advantages? Indispensable for SQL users,ease-of-use; Easier then java MR API; Hive Disadvantages?
Hive's Focus
1、Hive内部表和外部表的区别? 1) 在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而内部表则不一样; http://www.aboutyun.com/thread-7458-1-1.html 2、Hbase的rowkey怎么创建比较好?列族怎么创建比较好? 3、用mapreduce怎么处理数据倾斜问题? http://www.alidata.org/archives/2109 http://blog.csdn.net/biaorger/article/details/38392957 4、hadoop框架中怎么来优化? http://itindex.net/detail/49326-hadoop-%E4%BC%98%E5%8C%96-%E6%80%BB%E7%BB%93 5、Hbase内部是什么机制? http://ju.outofmemory.cn/entry/50070 6、hdfs的数据压缩算法 http://blog.sina.com.cn/s/blog_66474b1601017yjq.html 7、hive底层与数据库交互原理 8、hbase过滤器实现原则 http://zjushch.iteye.com/blog/1530143 一. 问答题 1) datanode在什么情况下不会备份? 2) hdfs的体系结构? 3) sqoop在导入数据到mysql时,如何让数据不重复导入?如果存在数据问题sqoop如何处理? 4) 请列举曾经修改过的/etc下的配置文件,并说明修改要解决的问题? 5) 描述一下hadoop中,有哪些地方使用了缓存机制,作用分别是什么?
[plain]?view plain
字段解释: [plain]?view plain
要求注意边界情况的处理 3.2 请描述一下在开发中如何对上面的程序进行性能分析,对性能进行优化的过程。 一. 问答题: 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集群的健康状况? 二. 思考题 (2) 如何分块达到最优。比如也可分10W 块,每块1000 个数。则问题规模可降到原来1/100。但事实上复杂度并没降低。 (3) 还有没更好更优的方法解决这个问题。 1.hive如何调优? 2.hive如何权限控制? 3.hbase写数据的原理是什么? 4.hive能像关系数据库那样,建多个库吗? 5.hbase宕机如何处理? 6.hive实现统计的查询语句是什么? 7.生产环境中为什么建议使用外部表? 8.hadoop mapreduce创建类DataWritable的作用是什么? 9.为什么创建类DataWritable? 一. 问答题: 1. 简单说说map端和reduce端溢写的细节 2. hive的物理模型跟传统数据库有什么不同 3. 描述一下hadoop机架感知 4. 对于mahout,如何进行推荐、分类、聚类的代码二次开发分别实现那些接口 5. 直接将时间戳作为行健,在写入单个region 时候会发生热点问题,为什么呢? 方法二: 2.如果让你设计,你觉得一个分布式文件系统应该如何设计,考虑哪方面内容? 一.问答题 1、map方法是如何调用reduce方法的? 2、fsimage和edit的区别? 3、hadoop1和hadoop2的区别? 4、列举几个配置文件优化? 5、写出你对zookeeper的理解 6、datanode首次加入cluster的时候,如果log报告不兼容文件版本,那需要namenode执行格式化操作,这样处理的原因是? 7、hbase 集群安装注意事项
1.文件大小默认为64M,改为128M有啥影响? 2.RPC的原理? 3.NameNode与SecondaryNameNode的区别与联系? 4.介绍MadpReduce整个过程,比如把WordCount的例子的细节将清楚(重点讲解Shuffle)? 5.MapReduce出现单点负载多大,怎么负载平衡? 6.MapReduce怎么实现Top10? 7.hadoop底层存储设计 8.zookeeper有什么优点,用在什么场合 9.Hbase中的metastore用来做什么的? 10.HBase在进行模型设计时重点在什么地方?一张表中国定义多少个Column Family最合适?为什么? 11.如何提高HBase客户端的读写性能?请举例说明。 12.在hadoop开发过程中使用过哪些算法?其应用场景是什么? 13.MapReduce程序如何发布?如果MapReduce中涉及到了第三方的jar 包,该如何处理? 14.在实际工作中使用过哪些集群的运维工具,请分别阐述其作用。
1.?集群多少台,数据量多大,吞吐量是多大,每天处理多少G的数据? 2. 我们的日志是不是除了apache的访问日志是不是还有其他的日志? 3. 假设我们有其他的日志是不是可以对这个日志有其他的业务分析?这些业务分析都有什么? 4. 你们的服务器有多少台?服务器的内存多大? 5. 你们的服务器怎么分布的?(这里说地理位置分布,最好也从机架方面也谈谈) 6. 你平常在公司都干些什么(一些建议) 7. 你们的集群规模? 开发集群: 10台(8台可用) 8核cpu 8. 你们的数据是用什么导入到数据库的?导入到什么数据库? 处理之前的导入:通过 hadoop 命令导入到 hdfs 文件系统 处理完成之后的导出:利用 hive 处理完成之后的数据,通过 sqoop 导出到 mysql 数据库中,以供报表层使用。 9. 你们业务数据量多大?有多少行数据?? 开发时使用的是部分数据,不是全量数据,有将近一亿行( 8、 9 千万,具体不详,一般开发中也没人会特别关心这个问题) 10. 你们处理数据是直接读数据库的数据还是读文本数据? 将日志数据导入到 hdfs 之后进行处理 11. 你们写 hive 的 hql 语句,大概有多少条? 不清楚,我自己写的时候也没有做过统计 12. 你们提交的 job 任务大概有多少个?这些 job 执行完大概用多少时间? 没统计过,加上测试的,会有很多 13. 你在项目中主要的工作任务是? 利用 hive 分析数据 14. 你在项目中遇到了哪些难题,是怎么解决的? 某些任务执行时间过长,且失败率过高,检查日志后发现没有执行完就失败,原因出在hadoop 的 job 的 timeout 过短(相对于集群的能力来说),设置长一点即可 15. 你自己写过 udf 函数么?写了哪些? 16. 你的项目提交到 job 的时候数据量有多大?? 17. 数据备份,你们是多少份,如果数据超过存储容量,你们怎么处理? 18. 怎么提升多个 JOB 同时执行带来的压力,如何优化,说说思路? 19. 你们用 HBASE 存储什么数据?
21. ?你们的 hbase 大概在公司业务中(主要是网上商城)大概都几个表,几个表簇,都存什么样的数据?
1.hbase怎么预分区? 2.hbase怎么给web前台提供接口来访问? 3.htable API有没有线程安全问题,在程序中是单例还是多例? 4.hbase有没有并发问题? 5.metaq消息队列,zookeeper集群,storm集群,就可以完成对商城推荐系统功能吗?还有没有其他的中间件? 6.storm 怎么完成对单词的计数? 7.hdfs的client端,复制到第三个副本时宕机, hdfs怎么恢复保证下次写第三副本? 8.block块信息是先写dataNode还是先写nameNode? 9.Hadoop生态圈中各种框架的运用场景? 10.hive中的压缩格式RCFile、TextFile、SequenceFile各有什么区别?? 11.说明 Hadoop 2.0 的基本构成。 12.相比于 HDFS1.0,HDFS 2.0最主要的改进在哪几方面? 13.试使用"步骤 1,步骤 2,步骤 3…" 说明YARN中运行应用程序的基本流程。 14.MapReduce2.0中,MRAppMaster主要作用是什么?MRAppMaster如何实现任务容错的? 15.为什么会产生yarn,它解决了什么问题,有什么优势? 一. 问答题 1.请说说hadoop1的HA如何实现? 2.列举出hadoop中定义的最常用的InputFormats。那个是默认的? 3.TextInputFormat和KeyValueInputFormat类之间的不同之处在于哪里? 4.hadoop中的InputSplit是什么? 5.hadoop框架中文件拆分是如何被触发的? 6.hadoop中的RecordReader的目的是什么? 7.如果hadoop中没有定义定制分区,那么如何在输出到reducer前执行数据分区? 8.什么是jobtracker?jobtracker有哪些特别的函数? 9.hadoop中job和task之间是什么关系? 10.假设hadoop一个job产生了100个task,其中一个task失败了,hadoop会如何处理? 11.hadoop推测执行是如何实现的? 12.关系型数据库有什么弱点? 很难进行分布式部署,I/O瓶颈显著,依赖于强大的服务器,需要花更大的代价才能突破性能极限 很难处理非结构化数据 13.什么情况下使用hbase? 适合海量的,但同时也是简单的操作(例如:key-value) 成熟的数据分析主题,查询模式已经确定并且不会轻易改变。 传统的关系型数据库已经无法承受负荷,高速插入,大量读取
常规方法是先排序,在遍历一次,找出重复最多的前10条。但是排序的算法复杂度最低为nlgn。可以设计一个 hash_table,hash_map<string,int> ,依次读取一千万条短信,加载到hash_table表中,并且统计重复的次数,与此同时维护一张最多10条的短信表。这样遍历一次就能找出最多的前10条,算法复杂度为 O(n)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |