ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:39.14KB ,
资源ID:3730205      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3730205.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(hadoop面试题解读.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

hadoop面试题解读.docx

1、hadoop面试题解读Hadoop就业面试宝典1.0 简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤,列出具体步骤更好。答:第一题:1使用root账户登录2 修改IP3 修改host主机名4 配置SSH免密码登录5 关闭防火墙6 安装JDK6 解压hadoop安装包7 配置hadoop的核心文件 hadoop-env.sh,core-site.xml , mapred-site.xml , hdfs-site.xml8 配置hadoop环境变量9 格式化 hadoop namenode-format10 启动节点 start-all.sh2.0 请;列出正

2、常的hadoop集群中hadoop都分别需要启动 哪些进程,他们的作用分别都是什么,请尽量列的详细一些。 答:namenode:管理集群,存储数据的原信息,并管理记录datanode中的文件信息。 Secondname:可以做冷备,对一定范围内数据做快照性备份。Datanode:存储数据Jobtracker :管理任务,并将任务分配给 tasktracker。Tasktracker: 执行JobTracker分配的任务。3.0请写出以下的shell命令 (1)杀死一个job(2)删除hdfs上的 /tmp/aaa目录(3) 加入一个新的存储节点和删除一个节点需要执行的命令答:(1)hadoop

3、 job list 得到job的id,然后执 行 hadoop job -kill jobId就可以杀死一个指定jobId的job工作了。(2)hadoop fs -rmr /tmp/aaa(3) 增加一个新的节点在新的几点上执行 Hadoop daemon.sh start datanode Hadooop daemon.sh start tasktracker 然后在主节点中执行 hadoop dfsadmin -refreshnodes 删除一个节点的时候,只需要在主节点执行 hadoop mradmin -refreshnodes4.0 请列出你所知道的hadoop调度器,并简要说明其

4、工作方法答:Fifo schedular :默认,先进先出的原则Capacity schedular :计算能力调度器,选择占用最小、优先级高的先执行,依此类推。Fair schedular:公平调度,所有的 job 具有相同的资源。5.0 请列出你在工作中使用过的开发mapreduce的语言答:java,hive6.0 当前日志采样格式为 a , b , c , d b , b , f , e a , a , c , f 请你用最熟悉的语言编写mapreduce,计算第四列每个元素出现的个数 Static final String 答:public class WordCount1 publ

5、ic static final String INPUT_PATH = hdfs:/hadoop0:9000/in; public static final String OUT_PATH = hdfs:/hadoop0:9000/out; public static void main(String args) throws Exception Configuration conf = new Configuration(); FileSystem fileSystem = FileSystem.get(conf); if(fileSystem.exists(new Path(OUT_PAT

6、H) fileSystem.delete(new Path(OUT_PATH),true); Job job = new Job(conf,WordCount1.class.getSimpleName(); /1.0读取文件,解析成key,value对 FileInputFormat.setInputPaths(job,new Path(INPUT_PATH); /2.0写上自己的逻辑,对输入的可以,value进行处理,转换成新的key,value对进行输出 job.setMapperClass(MyMapper.class); job.setMapOutputKeyClass(Text.cl

7、ass); job.setMapOutputValueClass(LongWritable.class); /3.0对输出后的数据进行分区 /4.0对分区后的数据进行排序,分组,相同key的value放到一个集合中 /5.0对分组后的数据进行规约 /6.0对通过网络将map输出的数据拷贝到reduce节点 /7.0 写上自己的reduce函数逻辑,对map输出的数据进行处理 job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(LongWritable.c

8、lass); FileOutputFormat.setOutputPath(job, new Path(OUT_PATH); job.waitForCompletion(true); static class MyMapper extends Mapper Override protected void map(LongWritable k1, Text v1, org.apache.hadoop.mapreduce.Mapper.Context context) throws IOException, InterruptedException String split = v1.toStri

9、ng().split(t); for(String words :split) context.write(split3, 1); static class MyReducer extends Reducer protected void reduce(Text k2, Iterable v2, org.apache.hadoop.mapreduce.Reducer.Context context) throws IOException, InterruptedException Long count = 0L; for(LongWritable time : v2) count += tim

10、e.get(); context.write(v2, new LongWritable(count); 7.0 你认为用java , streaming , pipe方式开发map/reduce , 各有哪些优点就用过 java 和 hiveQL。Java 写 mapreduce 可以实现复杂的逻辑,如果需求简单,则显得繁琐。HiveQL 基本都是针对 hive 中的表数据进行编写,但对复杂的逻辑很难进行实现。写起来简单。 8.0 hive有哪些方式保存元数据,各有哪些优点 三种:内存数据库 derby,挺小,不常用 。本地 mysql。常用远程端 mysql。不常用上网上找了下专业名称:si

11、ngle user mode.multi user mode.remote user mode9.0 请简述hadoop怎样实现二级排序 第一种方法是,Reducer将给定key的所有值都缓存起来,然后对它们再做一个Reducer内排序。但是,由于Reducer需要保存给定key的所有值,可能会导致出现内存耗尽的错误。第二种方法是,将值的一部分或整个值加入原始key,生成一个合成key。这两种方法各有优势,第一种方法可能会更快一些(但有内存耗尽的危险),第二种方法则是将排序的任务交给MapReduce框架,更符合Hadoop/Reduce的设计思想。这篇文章里选择的是第二种。我们将编写一个Pa

12、rtitioner,确保拥有相同key(原始key,不包括添加的部分)的所有数据被发往同一个Reducer,还将编写一个Comparator,以便数据到达Reducer后即按原始key分组。10.简述hadoop实现jion的几种方法 利用dataJoin来实现mapreduce的jion问题。11.0 请用java实现非递归二分查询1. publicclassBinarySearchClass2. 3. 4. publicstaticintbinary_search(intarray,intvalue)5. 6. intbeginIndex=0;/低位下标7. intendIndex=arr

13、ay.length-1;/高位下标8. intmidIndex=-1;9. while(beginIndex=endIndex)10. midIndex=beginIndex+(endIndex-beginIndex)/2;/防止溢出11. if(value=arraymidIndex)12. returnmidIndex;13. elseif(valuearraymidIndex)14. endIndex=midIndex-1;15. else16. beginIndex=midIndex+1;17. 18. 19. return-1;20. /找到了,返回找到的数值的下标,没找到,返回-1

14、21. 22. 23. 24. /start提示:自动阅卷起始唯一标识,请勿删除或增加。25. publicstaticvoidmain(Stringargs)26. 27. System.out.println(Start.);28. intmyArray=newint1,2,3,5,6,7,8,9;29. System.out.println(查找数字8的下标:);30. System.out.println(binary_search(myArray,8);31. 32. /end/提示:自动阅卷结束唯一标识,请勿删除或增加。33. 12.0 请简述mapreduce中的combine和

15、partion的作用答:combiner是发生在map的最后一个阶段,其原理也是一个小型的reducer,主要作用是减少输出到reduce的个数,减少reducer的输入,提高reducer的执行效率。Partion的主要作用就是指定输出到reduce的个数的。13.0 hive内部表和外部表的区别Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。14. Hbase的rowKe

16、y怎么创建比较好?列簇怎么创建比较好?答:rowKey最好要创建有规则的rowKey,即最好是有序的。HBase中一张表最好只创建一到两个列族比较好,因为HBase不能很好的处理多个列族。15. 用mapreduce怎么处理数据倾斜问题在mapreduce聚合key中所有values的时候,如果一个key对应了很多values,就会产生数据倾斜的问题。数据倾斜主要就是某个key下面对应的value太多,导致某个reduce节点执行的数据过多,然后产生某个或者某几个reduce节点的执行效率过低,导致整个集群中的任务执行效率较慢,可以使用partion对数据过多的节点进行再划分,划分成多个小的数

17、据块,输入到reduce进行处理。16. hadoop框架怎么来优化答:hadoop优化的范围太宽泛了,可以从某个方面具体来谈一谈,比如说HBase的rowKey和列族的创建的来进行数据存储的优化,可以从网络的拷贝对数据的优化,可以从mapreduce对数据的处理来谈优化,可以从参数方面来说优化等。17. hbase内部机制是什么答:内部机制更多的是借助nosql数据的关系模型,是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。 18. 我们在开发分布式计算job的时候,是否可以去掉reduce阶段答:可以,例如我们的集群就是为了存储文件而设计的,不涉及到数据的

18、计算,就可以将mapReduce都省掉。19 hdfs的数据压缩算法答:可以使用sequenceFile和mapFile来对小文件进行压缩,压缩成大文件,然后存储,减轻namenode的内存压力。20. mapreduce的调度模式答:公平调度模式和容量调度模式21. hive底层与数据库交互原理答:hive有一套自己的sql解析引擎,称为metastore,存储在mysql或者derby数据库中,可以将sql语句转化为mapreducejob任务执行。22. hbase过滤器实现原则答:过滤器必须实现HBase Jar包中的Filter接口,或者继承扩展一个实现了该接口的抽象类 23. re

19、duce之后数据的输出量有多大24. 现场出问题测试mapreduce掌握情况和hive的ql语言掌握情况25.datanode在什么情况下不会备份数据答:在配置文件中设置文件副本数为1bine出现在哪个过程答:map阶段的最后一个过程。27. hdfs的体系结构答:HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据 28. flush的过程答:flush是在内存的基础上进行的,首先写入文件的时候,

20、会先将文件写到内存中,当内存写满的时候,就会清空缓存中的文件,然后一次性的将文件全部都写到硬盘中去保存。29. 什么是队列答:队列就是一个先进先出的过程。30. List与set的区别答:List和Set都是接口。他们各自有自己的实现类,有无顺序的实现类,也有有顺序的实现类。最大的不同就是List是可以重复的。而Set是不能重复的。List适合经常追加数据,插入,删除数据。但随即取数效率比较低。Set适合经常地随即储存,插入,删除。但是在遍历时效率比较低。31.数据的三范式答:第一范式()无重复的列第二范式(2NF)属性完全依赖于主键 消除部分子函数依赖第三范式(3NF)属性不依赖于其它非主属

21、性 消除传递依赖32.三个datanode中当有一个datanode出现错误时会怎样?答:当有一个datanode出现错误的时候,namenode会将那个datanode上的数据拷贝到其他的节点去进行存储。33.sqoop在导入数据到mysql中,如何不重复导入数据,如果存在数据问题,sqoop如何处理?答:34.描述一下hadoop中,有哪些地方使用到了缓存机制,作用分别是什么?答:缓存机制就是DistributedCash,就是在job任务执行前,将需要的文件拷贝到Task机器上进行缓存,提高mapreduce的执行效率。35.MapReduce优化经验答:(1.)设置合理的map和red

22、uce的个数。(2.)避免出现数据倾斜(bine函数(4.对数据进行压缩,避免大量的小文件36.请列举出曾经修改过的/etc/下面的文件,并说明修改要解决什么问题?答:/etc/profile这个文件,主要是用来配置环境变量。让hadoop命令可以在任意目录下面执行。37.请描述一下开发过程中如何对上面的程序进行性能分析,对性能分析进行优化的过程。38. 现有 1 亿个整数均匀分布,如果要得到前 1K 个最大的数,求最优的算法。我先说下我的想法:分块,比如分 1W 块,每块 1W 个,然后分别找出每块最大值,从这最大的 1W 个值中找最大 1K 个,那么其他的 9K 个最大值所在的块即可扔掉,

23、从剩下的最大的 1K 个值所在的块中找前 1K个即可。那么原问题的规模就缩小到了 1/10。问题:(1)这种分块方法的最优时间复杂度。(2)如何分块达到最优。比如也可分 10W 块,每块 1000 个数。则问题规模可降到原来1/100。但事实上复杂度并没降低。39.mapreduce的大致流程答:主要分为八个步骤1.0读取文件,解析成key,value对2.0自定义map函数3.0对map输出的数据进行分区4.0对分区后的数据进行排序分组5.0对分组后的数据进行规约6.0通过网络拷贝,将map输出的数据拷贝到reduce节点7.0自定义reduce函数,对map输入的key,value对进一步

24、的处理8.0对处理后的数据进行输出40. combiner 和partion的作用答:combiner主要是用来减少输入到reduce阶段的数据Partion作用主要是对map处理的数据进行分区,可以解决数据倾斜的问题。41.用mapreduce实现sql语 select count (x) from a group by b;42.用mapreduce 如何实现两张表连接,有哪些方法。43.知道mapreduce 大致流程,map , shuffle , reduce44.搭建hadoop集群 , master和slaves都运行哪些服务答:master主要是运行我们的主节点,slaves主

25、要是运行我们的从节点。45. hadoop参数调优46. pig , latin , hive语法有什么不同答:47.描述Hbase,ZooKeeper搭建过程48.hadoop运行原理答:hadoop的主要核心是由两部分组成,HDFS和mapreduce,首先HDFS的原理就是分布式的文件存储系统,将一个大的文件,分割成多个小的文件,进行存储在多台服务器上。Mapreduce的原理就是使用JobTracker和TaskTracker来进行作业的执行。Map就是将任务展开,reduce是汇总处理后的结果。49.mapreduce的原理答:mapreduce的原理就是将一个MapReduce框架

26、由一个单独的master JobTracker和每个集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这些的slave上,master监控它们的执行,重新执行已经失败的任务。而slave仅负责执行由maste指派的任务。50.HDFS存储机制答:HDFS主要是一个分布式的文件存储系统,由namenode来接收用户的操作请求,然后根据文件大小,以及定义的block块的大小,将大的文件切分成多个block块来进行保存51.举一个例子说明mapreduce是怎么运行的。52.如何确认hadoop集群的健康状况答:使用JPS命令来查看各个节点运行的进程

27、是否正常。53.mapreduce作业,不让reduce输出,用什么代替reduce的功能。54.hive如何调优答:hive最终都会转化为mapreduce的job来运行,要想hive调优,实际上就是mapreduce调优,可以有下面几个方面的调优。解决收据倾斜问题,减少job数量,设置合理的map和reduce个数,对小文件进行合并,优化时把我整体,单个task最优不如整体最优。按照一定规则分区。55.hive如何控制权限56.56.HBase写数据的原理是什么?答:57.hive能像关系型数据库那样建多个库吗?答:当然能了。58.HBase宕机如何处理答:宕机分为HMaster宕机和HR

28、egisoner宕机,如果是HRegisoner宕机,HMaster会将其所管理的region重新分布到其他活动的RegionServer上,由于数据和日志都持久在HDFS中,该操作不会导致数据丢失。所以数据的一致性和安全性是有保障的。如果是HMaster宕机,HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。即ZooKeeper会保证总会有一个HMaster在对外提供服务。59.假设公司要建一个数据中心,你会如何处理?60. 单项选择题 1. 下面哪个程序负责 HDFS 数据存储。 答案

29、 Ca)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker2. HDfS 中的 block 默认保存几份? 答案 Aa)3 份 b)2 份 c)1 份 d)不确定3. 下列哪个程序通常与 NameNode 在一个节点启动? 答案Ca)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker4. Hadoop 作者 答案Da)Martin Fowler b)Kent Beck c)Doug cutting 5. HDFS 默认 Block Size 答案 Ba)32MB b)64MB c)128MB6. 下列哪项通常是集群的最主要瓶颈 答案D编者 QQ:104019525319a)CPU b)网络 c)磁盘

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1