《2022年大数据试题 .pdf》由会员分享,可在线阅读,更多相关《2022年大数据试题 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、填空题(将正确的答案写入答题纸中。每空1 分,共 20 分)1、HDFS 有 _ NameNode_ _,_ DataNode_ _ 和_ SecondaryNameNode_ _ 组成;2、Hadoop集群可以运行在_ 单机模式 _ _,_ 伪分布式模式 _ _和_ 完全分布式模式_ _3个模式?3、安装完全分布式Apache Hadoop 的核心配置文件有_ core-site.xml_ _,_ hdfs-site.xml_ _,_ mapred-site.xml_ _,_ yarn-site.xml_ _。4、HBase 中通过 _ HDFS_ _存储底层数据 ,通过 _ _Zook
2、eeper_ _提供消息通信机制5、HIVE 默认采用 _ _ Derby _ _ _ _数据库进行元数据的存储,而真实的数据是存储在_ _HDFS _ _ _ 中。6、如何在浏览器中查看HDFS 运行状况的默认端口号是_ 50070_ _ 查看 yarn 运行状态的默认端口号是 _ 8088_ _ 7、HDFS 中当前 block 大小为 128M, 如果当前要上传到HDFS 中的文件大小为300M ,那么在存储时会分配_ 3_ _ 个 block进行存储。8、HDFS 获取根目录下的文件列表的命令shell 命令是 _hadoop fs -ls -R / _ _ _ _ _ _;根目录下创
3、建hdfs 文件夹的 shell 命令是 _ _ hadoop fs -mkdir /hdfs_ _ _ _ _ 。9、YARN 架构中整个集群同一时间提供服务的ResourceManager 有_ 1_ _ 个,负责集群资源的统一管理和调度。二、选择题(将正确的答案写入答题纸中。每题2 分,共 20 分)1、配置 Hadoop 时, JAVA_HOME 包含在哪一个配置文件中(B) Ahadoop-default.xml Bhadoop-env.sh Chadoop-site.xml Dconfiguration.xs 2、下面哪个程序负责HDFS 数据存储。(C)A)NameNode B)
4、Jobtracker C)Datanode D)secondaryNameNode 3、下列关于Hadoop API 的说法错误的是(A)AHadoop 的文件 API 不是通用的,只用于HDFS 文件系统BConfiguration 类的默认实例化方法是以HDFS 系统的资源配置为基础的CFileStatus 对象存储文件和目录的元数据DFSDataInputStream 是 java.io.DataInputStream 的子类4、HDfS 中的 block 默认保存几份 ? (A)A)3 份B)2 份C)1 份D)不确定名师资料总结 - - -精品资料欢迎下载 - - - - - - -
5、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 5、 为销售报表展示开发一个MapReduce 作业,Mapper 输入数据的Key 是年份(IntWritable ) ,Value 表示商品标识(Text) 。下列哪一项决定该Mapper 的数据类型?(D)A. JobConf.setMapInputKeyClass 与 JobConf.setMapInputValuesClass B. HADOOP_MAP_DATATYPES 环境变量C. 随作业一起提交的mapper-specificat
6、ion.xml 文件D. InputFormat 格式类6、HDFS 无法高效存储大量小文件,想让它能处理好小文件,比较可行的改进策略不包括(D)A. 利用 SequenceFile、MapFile 、Har 等方式归档小文件B. 多 Master 设计C. Block 大小适当调小D. 调大 namenode 内存或将文件系统元数据存到硬盘里7、下列哪个程序通常与NameNode 在一个节点启动?(D)a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 8、下面与HDFS 类似的框架是?(C)(A) NTFS (B) FAT32
7、 (C) GFS (D) EXT3 9 、HDFS 的是基于流数据模式访问和处理超大文件的需求而开发的,默认的最基本的存储单位是64M ,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是(C)A一次写入,少次读写B多次写入,少次读写C一次写入,多次读写D多次写入,多次读写10、HBase 中的批量加载底层使用(A)实现。A MapReduce B Hive C Coprocessor D Bloom Filter 三、简答题(将正确的答案写入答题纸中。每题5 分,共 20 分)1、简述下 HDFS 数据读流程;答:步骤如下,能大致描述清楚流程,没有关键错误即可1、跟 name
8、node 通信查询元数据 (block 所在的 datanode节点),找到文件块所在的datanode服务器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket 流3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet 为单位来做校验)4、客户端以packet 为单位接收,先在本地缓存,然后写入目标文件,后面的block 块就相当于是
9、 append到前面的 block 块最后合成最终需要的文件。2、如何查看hadoop 进程并列出hadoop的几个进程名答: 使 用 jps 命令可查看hadoop进程。 Namenode, SecondaryNameNode, Datanode ,ResourceManager, NodeManager3、请简述 MapReduce 中 combiner、partition 的作用答:combiner :有时一个 map 可能会产生大量的输出,combiner 的作用是在map 端对输出先做一次合并,以减少网络传输到reducer 的数量。注意: mapper 的输出为 combiner
10、的输入, reducer 的输入为 combiner 的输出。partition :把 map任务输出的中间结果按照key 的范围划分成R份(R 是预先定义的reduce任务的个数 ),划分时通常使用hash函数,如: hash(key) mod R 这样可以保证一段范围内的key,一定会由一个reduce 任务来处理。4、HBase 的检索支持3 种方式是哪些?答:(1) 通过单个Rowkey 访问,即按照某个Rowkey 键值进行get 操作,这样获取唯一一条记录;(2) 通过 Rowkey 的 range 进行 scan,即通过设置startRowKey 和 endRowKey ,在这个
11、范围内进行扫描。这样可以按指定的条件获取一批记录;(3) 全表扫描,即直接扫描整张表中所有行记录。四、程序题(将正确的答案写入答题纸中。每题10 分,共 20 分)1、以一段 文本作为输入对象,写一个WordCount程序。例如文本数据的情况如下统计出文本中每个单词出现的次数,输出结果如下面例子所示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 答:public class WordCount public static cla
12、ss TokenizerMapper extends Mapper private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException StringTokenizer itr = new StringTokenizer(value.toString(); while (itr.hasMo
13、reTokens() word .set(itr.nextToken(); context.write(word , one); public static class IntSumReducer extends Reducer private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable values, Context context ) throws IOException, InterruptedException int sum = 0; for (IntWritable va
14、l : values) sum += val.get(); result.set(sum); context.write(key, result); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - public static void main(String args) throws Exception Configuration conf = new Configuration(); Job job = Job.getInst
15、ance(conf, word count); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job,
16、 new Path(args0); FileOutputFormat.setOutputPath(job, new Path(args1); System.exit(job.waitForCompletion(true ) ? 0 : 1); 2、写一段代码,利用Java api 操作 HDFS 文件系统,实现文件的上传和下载,Hadoop 文件系统地址为hdfs:/hadoop:8020 ,将本地hadoop.txt 文件上传至根目录下的hadoop 文件夹中,将HDFS 中 hadoop 文件中的 hadoop1.txt 下载到本地public class App public stati
17、c final String HDFS_PATH = hdfs:/hadoop:8020; public static void main(String args) throws Exception /创建FileSystem Configuration configuration = new Configuration(); FileSystem fileSystem = FileSystem.get ( new URI( HDFS_PATH ), configuration, hadoop); /文件上传Path localPath = new Path( hadoop.txt); Pat
18、h hdfsPath = new Path( /hadoop); fileSystem.copyFromLocalFile(localPath, hdfsPath); /文件下载hdfsPath = new Path(/hadoop/hadoop1.txt); localPath = new Path( hadoop1.txt); fileSystem.copyToLocalFile(hdfsPath, localPath); 五、分析题(将正确的答案写入答题纸中。每题20 分,共 20 分)1、有如下一个场景,有一个1G 大小的一个文件,里面每一行是一个词,词的大小不超过16 字节,内存限制
19、大小是1M ,要求返回频数最高的100 个词,写出解决问题主要思路。答:主要考察map 和 reduce 的运用分析,能体现出这几点即可得分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - Step1:顺序读文件中,对于每个词x,取 hash(x)%5000 ,然后按照该值存到5000 个小文件(记为 f0 ,f1 ,. ,f4999 )中,这样每个文件大概是200k 左右,如果其中的有的文件超过了1M 大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M;Step2: 对每个小文件, 统计每个文件中出现的词以及相应的频率(可以采用trie 树/hash_map 等) ,并取出出现频率最大的100 个词(可以用含100 个结点的最小堆) ,并把 100 词及相应的频率存入文件,这样又得到了5000 个文件;Step3:把这 5000 个文件进行归并(类似与归并排序);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -
限制150内