欢迎来到天天文库
浏览记录
ID:35305811
大小:28.88 KB
页数:20页
时间:2019-03-23
《柠檬学院马延辉:常见的大数据面试题汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一部分:某公司面试题 1、如何为一个hadoop任务设置mappers的数量 答案: 使用job.setNumMapTask(intn)手动分割,这是不靠谱的 官方文档:“Note:Thisisonlyahinttotheframework”说明这个方法只是提示作用,不起决定性作用 实际上要用公式计算: Max(min.split,min(max.split,block))就设置分片的最大最下值computeSplitSize()设置 2、有可能使hadoop任务输出到多个目录中么?如果可以,怎么做? 答案:在1.X版本后使用Multipl
2、eOutputs.java类实现 源码: MultipleOutputs.addNamedOutput(conf,"text2",TextOutputFormat.class,Long.class,String.class); MultipleOutputs.addNamedOutput(conf,"text3",TextOutputFormat.class,Long.class,String.class); 参考:http://my.oschina.net/leejun2005/blog/94706 发音:Multiple['m?lt?pl]-
3、-》许多的 3、如何为一个hadoop任务设置要创建的reducer的数量 答案:job.setNumReduceTask(intn) 或者调整hdfs-site.xml中的mapred.tasktracker.reduce.tasks.maximum默认参数值 4、在hadoop中定义的主要公用InputFormats中,哪一个是默认值: (A)TextInputFormat (B)KeyValueInputFormat (C)SequenceFileInputFormat 答案:A 5、两个类TextInputFormat和KeyVa
4、lueTextInputFormat的区别? 答案: ?FileInputFormat的子类: TextInputFormat(默认类型,键是LongWritable类型,值为Text类型,key为当前行在文件中的偏移量,value为当前行本身); ?KeyValueTextInputFormat(适合文件自带key,value的情况,只要指定分隔符即可,比较实用,默认是t分割); 源码: StringsepStr=job.get("mapreduce.input.keyvaluelinerecordreader.key.value.sepa
5、rator","t"); 注意:在自定义输入格式时,继承FileInputFormat父类 6、在一个运行的hadoop任务中,什么是InputSpilt? 答案:InputSplit是MapReduce对文件进行处理和运算的输入单位,只是一个逻辑概念,每个InputSplit并没有对文件实际的切割,只是记录了要处理的数据的位置(包括文件的path和hosts)和长度(由start和length决定),默认情况下与block一样大。 拓展:需要在定义InputSplit后,展开讲解mapreduce的原理 7、Hadoop框架中,文件拆分是怎么
6、被调用的? 答案:JobTracker,创建一个InputFormat的实例,调用它的getSplits()方法,把输入目录的文件拆分成FileSplist作为Mappertask的输入,生成Mappertask加入Queue。 源码中体现了拆分的数量 longgoalSize=totalSize/(numSplits==0?1:numSplits); longminSize=Math.max(job.getLong(org.apache.hadoop.mapreduce.lib.input. FileInputFormat.SPLIT_MINS
7、IZE,1),minSplitSize);//minSplitSize默认是1 8、分别举例什么情况下使用combiner,什么情况下不会使用? 答案:Combiner适用于对记录汇总的场景(如求和),但是,求平均数的场景就不能使用Combiner了 9、Hadoop中job和Tasks之间的区别是什么? 答案: job是工作的入口,负责控制、追踪、管理任务,也是一个进程 包含maptask和reducetask Tasks是map和reduce里面的步骤,主要用于完成任务,也是线程 10、Hadoop中通过拆分任务到多个节点运行来实现并行
8、计算,但是某些节点运行较慢会拖慢整个任务的运行,hadoop采用何
此文档下载收益归作者所有