大数据试题Word文档格式.docx
《大数据试题Word文档格式.docx》由会员分享,可在线阅读,更多相关《大数据试题Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
1、配置Hadoop时,JAVA_HOME包含在哪一个配置文件中(B)
A.hadoop-default.xml
B.hadoop-env.sh
C.hadoop-site.xml
D.configuration.xs
2、下面哪个程序负责HDFS数据存储。
(C)
A)NameNode
B)Jobtracker
C)Datanode
D)secondaryNameNode
3、下列关于HadoopAPI的说法错误的是(A)
A.Hadoop的文件API不是通用的,只用于HDFS文件系统
B.Configuration类的默认实例化方法是以HDFS系统的资源配置为基础的
C.FileStatus对象存储文件和目录的元数据
D.FSDataInputStream是java.io.DataInputStream的子类
4、HDfS中的block默认保存几份?
(A)
A)3份
B)2份
C)1份
D)不确定
5、为销售报表展示开发一个MapReduce作业,Mapper输入数据的Key是年份(IntWritable),Value表示商品标识(Text)。
下列哪一项决定该Mapper的数据类型?
(D)
A.JobConf.setMapInputKeyClass与JobConf.setMapInputValuesClass
B.HADOOP_MAP_DATATYPES环境变量
C.随作业一起提交的mapper-specification.xml文件
(B)FAT32
(C)GFS
(D)EXT3
9、HDFS的是基于流数据模式访问和处理超大文件的需求而开发的,默认的最基本的存储单位是64M,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是(C)
A.一次写入,少次读写
B.多次写入,少次读写
C.一次写入,多次读写
D.多次写入,多次读写
10、HBase中的批量加载底层使用(A)实现。
AMapReduce
BHive
CCoprocessor
DBloomFilter
三、简答题(将正确的答案写入答题纸中。
每题5分,共20分)
1、简述下HDFS数据读流程;
答:
步骤如下,能大致描述清楚流程,没有关键错误即可
1、跟namenode通信查询元数据(block所在的datanode节点),找到文件块所在的datanode服务器
2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流
3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)
4、客户端以packet为单位接收,先在本地缓存,然后写入目标文件,后面的block块就相当于是append到前面的block块最后合成最终需要的文件。
2、如何查看hadoop进程并列出hadoop的几个进程名
使用jps命令可查看hadoop进程。
Namenode,SecondaryNameNode,Datanode,ResourceManager,NodeManager
3、请简述MapReduce中combiner、partition的作用
答:
combiner:
有时一个map可能会产生大量的输出,combiner的作用是在map端对输出先做一次合并,以减少网络传输到reducer的数量。
注意:
mapper的输出为combiner的输入,reducer的输入为combiner的输出。
partition:
把map任务输出的中间结果按照key的范围划分成R份(R是预先定义的reduce任务的个数),划分时通常使用hash函数,如:
hash(key)modR
这样可以保证一段范围内的key,一定会由一个reduce任务来处理。
4、HBase的检索支持3种方式是哪些?
(1)通过单个Rowkey访问,即按照某个Rowkey键值进行get操作,这样获取唯一一条记录;
(2)通过Rowkey的range进行scan,即通过设置startRowKey和endRowKey,在这个范围内进行扫描。
这样可以按指定的条件获取一批记录;
(3)全表扫描,即直接扫描整张表中所有行记录。
四、程序题(将正确的答案写入答题纸中。
每题10分,共20分)
1、以一段文本作为输入对象,写一个WordCount程序。
例如文本数据的情况如下
统计出文本中每个单词出现的次数,输出结果如下面例子所示
publicclassWordCount{
publicstaticclassTokenizerMapper
extendsMapper<
Object,Text,Text,IntWritable>
{
privatefinalstaticIntWritableone=newIntWritable
(1);
privateTextword=newText();
publicvoidmap(Objectkey,Textvalue,Contextcontext
)throwsIOException,InterruptedException{
StringTokenizeritr=newStringTokenizer(value.toString());
while(itr.hasMoreTokens()){
word.set(itr.nextToken());
context.write(word,one);
}
publicstaticclassIntSumReducer
extendsReducer<
Text,IntWritable,Text,IntWritable>
privateIntWritableresult=newIntWritable();
publicvoidreduce(Textkey,Iterable<
IntWritable>
values,
Contextcontext
intsum=0;
for(IntWritableval:
values){
sum+=val.get();
result.set(sum);
context.write(key,result);
publicstaticvoidmain(String[]args)throwsException{
Configurationconf=newConfiguration();
Jobjob=Job.getInstance(conf,"
wordcount"
);
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,newPath(args[0]));
FileOutputFormat.setOutputPath(job,newPath(args[1]));
System.exit(job.waitForCompletion(true)?
0:
1);
}
2、写一段代码,利用Javaapi操作HDFS文件系统,实现文件的上传和下载,
Hadoop文件系统地址为hdfs:
//hadoop:
8020,将本地hadoop.txt文件上传至根目录下的hadoop文件夹中,将HDFS中hadoop文件中的hadoop1.txt下载到本地
publicclassApp{
publicstaticfinalStringHDFS_PATH="
hdfs:
8020"
;
//创建FileSystem
Configurationconfiguration=newConfiguration();
FileSystemfileSystem=FileSystem.get(newURI(HDFS_PATH),configuration,"
hadoop"
//文件上传
PathlocalPath=newPath("
hadoop.txt"
PathhdfsPath=newPath("
/hadoop"
fileSystem.copyFromLocalFile(localPath,hdfsPath);
//文件下载
hdfsPath=newPath("
/hadoop/hadoop1.txt"
localPath=newPath("
hadoop1.txt"
fileSystem.copyToLocalFile(hdfsPath,localPath);
五、分析题(将正确的答案写入答题纸中。
每题20分,共20分)