http://blog.csdn.net/scgaliguodong123_/article/details/46301147
单选题
1、与其他几项不同的是
A. Mesos
B. Mongodb
C. Corona
D. Borg
E. YARN
注:其他几项都是资源统一管理系统或者资源统一调度系统,而 Mongodb一种非关系型数据库。
2、[java基础] 以下不属于线程安全的数据结构是
A. HashMap
B. HashTable
C. CopyOnWriteArrayList
D. ConcurrentHashMap
3、hadoop2.x采用什么技术构建源代码
A. ant
B. ivy
C. maven
D. makefile
4、Apache Tez是由哪个公司首先开发的
A. Cloudera
B. MapR
C. Hortonworks
D. Intel
5、DistributedFileSystem调用create方法后的返回类型是
A. FSDataOutputStream
B. DataOutputStream
C. DFSOutputStream
D. FSDataInputStream
6以下哪种不是hadoop对于小文件的处理方式
A. SequenceFile
B. CombinedInputFormat
C. Archive
D. MapFile
E. ByteBuffer
7、关系型数据库与HDFS之间相互数据迁移的工具是
A. distcp
B. fsck
C. fastcopy
D. sqoop
8、SecondaryNamenode的作用是
A. 监控Namenode
B. 管理Datanode
C. 合并fsimage和editlogs
D. 支持Namenode HA
9、[linux基础] 表示主机名与IP地址映射关系的文件是
A. /etc/host.conf
B. /etc/hostname
C. /etc/hosts
D. /etc/resolv.conf
10、以下属于oozie作用的是
A. 作业监控
B. 日志收集
C. 工作流调度
D. 集群管理
11、hadoop处在云计算三层模型中哪一层
A. PaaS
B. SaaS
C. IasS
D. 介于IaaS和PaaS之间
12、以下哪个数据结构是java中对文件读取速度最快的
A. RandomAccessFile
B. FileChannel
C. BufferedInputStream
D. FileInputStream
FileChannel 用于读取、写入、映射和操作文件的通道。多个并发线程可安全地使用文件通道。
RandomAccessFile 此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。
BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。
FileInputStream从文件系统中的某个文件中获得输入字节。
13、默认的Namenode web管理端口是
A. 50070
B. 8020
C. 50030
D. 22
14、Client端与Namenode之间的RPC通信协议是
A. ClientNamenodeProtocol
B. NamenodeProtocl
C. DatanodeProtocol
D. ClientProtocol
15、FSDataOutputStream实现了哪个接口
A. DataOutputStream
B. FilterOutputStream
C. OutputStream
D. Syncable
public class FSDataOutputStream extends DataOutputStream implements Syncable, CanSetDropBehind{}
16、关于DirectByteBuffer和ByteBuffer描述错误的是
A. ByteBuffer在heap上分配内存
B. DirectByteBuffer的字节访问速度比ByteBuffer块
C. ByteBuffer需要通过wrap方法来封装字节数组
D. DirectByteBuffer由jvm负责垃圾回收
ByteBuffer需要通过wrap方法来封装字节数组,ByteBuffer在heap上分配内存,DirectByteBuffer的字节访问速度比ByteBuffer快。
ByteBuffer由JVM负责垃圾回收(DirectByteBuffer不是)
17、没有提供FUSE功能的分布式文件系统有
A. lustre
B. glusterfs
C. fastdfs
D. moosefs
mogileFS:Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多。
fastDFS:国人在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能。
mooseFS:支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,国内用的人比较多。
glusterFS:支持FUSE,比mooseFS庞大
ceph:支持FUSE,客户端已经进入了linux-2.6.34内核,也就是说可以像ext3/rasierFS一样,选择ceph为文件系统。彻底的分布式,没有单点依赖,用C编写,性能较好。基于不成熟的btrfs,其本身也非常不成熟。
lustre:Oracle公司的企业级产品,非常庞大,对内核和ext3深度依赖。
NFS:老牌网络文件系统。
18、下面哪个类的声明是正确的
A. abstract final class A{}
B. abstract private B(){}
C. protected private C;
D. public abstract class D{}
19、FileSystem类是一个
A. 接口
B. 抽象类
C. 普通类
D. 内部类
public abstract class FileSystemextends Configuredimplements Closeable{}
20、使用javap命令的哪个参数可以查看java内部类型的签名
A. -p
B. -l
C. -s
D. -c
21、使用snappy-java,需要的native库是
A. libhadoop.so
B. libsnappyjava.so
C. libsnappy.so
D. libjavasnappy.so
22、下列压缩算法支持splitable,能作为mapreduce输入的是
A. deflate
B. gzip
C. bzip2
D. snappy
23、禁用本地文件系统的校验功能可以设置属性是
A. fs.file.impl
B. fs.hdfs.impl
C. fs.local.impl
D. fs.raw.impl
设置fs.file.impl的值为org.apache.hadoop.fs,RawLocalFileSystem
24、linux默认情况下,一个进程最多能打开多少文件
A. 64
B. 128
C. 512
D. 1024
25、linux中使用tar归档命令,以下哪个命令可以列出详细列表
A. tar -cv
B. tar -r
C. tar -cvf
D. tar –t
t 列出档案文件的内容,查看已经备份了哪些文件。
26、和网络字节序一样的字节序是
A. Big Endian
B. Little Endian
C. BigLittle
D. Misc
不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序,最常见的有两种:
1. Little endian:将低序字节存储在起始地址
2. Big endian:将高序字节存储在起始地址
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。
27、Namenode发送给Datanode什么命令可以让Datanode对坏块进行删除
A. DNA_TRANSFER
B. DNA_FINALIZE
C. DNA_INVALIDATE
D. DNA_RECOVERBLOCK
28、数据节点通过运行什么后台线程来检测是否有数据损坏
A. DataXceiver
B. ReplicationManager
C. BlockPoolManager
D. DataBlockScanner
29、以下正确的语句是
A. new InputStreamReader(new FileReader(“data”))
B. new InputStreamReader(new BufferedReader(“data”))
C. new InputStreamReader(“data”)
D. new InputStreamReader(System.in)
30、以下哪个Set**默认是排序**的
A. HashSet
B. TreeSet
C. AbstractSet
D. LinkedHashSet
31、以下描述正确的是
A. Comparable在java.util.*包下
B. Comparator用于集合内对数据的比较
C. WritableComparable继承了WritableComparator
D. 实现了Comparable接口的类需要实现compareTo方法
32、以下描述正确的是
A. NullWritable可以用来表示一个空的Writable对象
B. fix()方法是MapFile的静态成员方法
C. Text的值不可以被修改
D. WritableComparator继承了WritableComparable
This method attempts to fix a corrupt MapFile by re-creating its index.
public static long fix(参数省略) {}
33、以下7层OSI网络模型按照正确顺序排序的是
A. 物理层 数据链路层 传输层 网络层 会话层 表示层 应用层
B. 物理层 数据链路层 会话层 网络层 传输层 表示层 应用层
C. 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
D. 网络层 传输层 物理层 数据链路层 会话层 表示层 应用层
34、以下描述错误的是
A. MapFile的key是Writable类型
B. SequenceFile中如果采用记录压缩方式,key是不压缩的
C. SequenceFile.Writer类支持append方法
D. SequenceFile中如果采用块压缩方式,key也要被压缩
35、以下说法的错误是
A. 使用Writable序列化方法不满足可扩展的需求
B. BytesWritable是不可变长度的
C. VIntWritable是可变长度的
D. 使用protocobuffer需要自定义消息类型
36、设计模式中注重接口或抽象与具体实现分离的是
A. Bridge模式
B. Facade模式
C. Proxy模式
D. Adapter模式
37、以下描述正确的是
A. LinkedHashMap.keySet()默认是按降序排序的
B. Hashtable.keySet()默认是按升序排序的
C. HashMap.keySet()默认是按乱序排序的
D. TreeMap.keySet()默认是顺序排序的
TreeMap.keySet()默认是升序排序的
LinkedHashMap.keySet()默认是按顺序排序的
38、DAO模式一般采用以下哪种设计模式
A. Proxy模式
B. Factory模式
C. Prototype模式
D. Observer模式
—2015.6.8
39、一个作业的map个数是怎么确定的
A. 属性mapred.map.tasks设定
B. JobTracker计算得出
C. InputSplit分片的个数
D. TaskTracker通过配置map的个数
40、TaskTracker与JobTracker之间的通信协议是
A. JobSubmissionProtocol
B. ClientProtocol
C. TaskUmbilicalProtocol
D. InterTrackerProtocol
在Hadoop中JT(JobTracker)与TT(TaskTracker)之间的通信是通过心跳机制完成的。JT实现InterTrackerProtocol协议,该协议定义了JT与TT之间的通信机制——心跳。心跳机制实际上就是一个RPC请求,JT作为Server,而TT作为Client,TT通过RPC调用JT的heartbeat方法,将TT自身的一些状态信息发送给JT,同时JT通过返回值返回对TT的指令。
41、默认的mapreduce输入格式是
A. TextInputFormat
B. KeyValueTextInputFormat
C. NLineInputFormat
D. SequenceFileInputFormat
42、以下描述错误的是
A. SequenceFile可以用来作为小文件的合并存储容器
B. TextInputFormat的key是LongWritable类型的
C. CombineFileInputFormat是抽象类
D. TextInputFormat的key是指该记录在文件中的行号
43、以下关于新旧mapreduce API的描述错误的是
A. 新API放在org.apache.hadoop.mapreduce包中,而旧API则是放在org.apache.hadoop.mapred中
B. 新API倾向于使用接口方式,而旧API倾向于使用抽象类
C. 新API使用Configuration,而旧API使用JobConf来传递配置信息
D. 新API可以使用Job对象来提交作业
44、map中环形缓冲区的大小可以由以下哪个属性确定
A. io.sort.spill.percent
B. io.sort.factor
C. io.sort.mb
D. mapred.reduce.parallel.copies
每个map都有一个环形缓冲区,默认大小100M,大小可以由属性io.sort.mb来修改。
一旦内存缓冲区达到一个溢写阀值(io.sort.spill.percent),就会新建一个溢写文件。
io.sort.factor控制着一次最多可以合并多少个分区。
45、以下描述错误的是
A. 输入分片InputSplit其实是对数据的引用
B. MultipleInputs可以设置多个数据源以及它们对应的输入格式
C. 可以通过重载isSplitable()方法来避免文件分片
D. ReduceTask需要等到所有的map输出都复制完才进行Merge
46、Task与TaskTracker直接的通信协议是
A. JobSubmissionProtocol
B. ClientProtocol
C. TaskUmbilicalProtocol
D. InterTrackerProtocol
InterDatanodeProtocol:Datanode内部交互的接口,用来更新block的元数据;
InnerTrackerProtocol:TaskTracker与JobTracker交互的接口,功能与DatanodeProtocol相似;
JobSubmissionProtocol:JobClient与JobTracker交互的接口,用来提交Job、获得Job等与Job相关的操作;
TaskUmbilicalProtocol:Task中子进程与母进程交互的接口,子进程即map、reduce等操作,母进程即TaskTracker,该接口可以回报子进程的运行状态(词汇扫盲: umbilical 脐带的,关系亲密的) 。
—2015.6.11
47、以下哪个组件可以指定对key进行Reduce分发的策略?
A. RecordReader
B. Combiner
C. Partitioner
D. FileInputFormat
48、以下描述正确的是
A. 只要设置了job.setCombinerClass(),那么Combiner函数一定会被执行
B. LineRecordReader类内部成员变量end变量是指这个输入分片的位置
C. M/R集群中Map的数量可以设置
D. M/R集群中Reduce的数量可以设置
49、在NameNode解决方案中,以下哪种方案不可以用来存储元数据信息
A. QJM
B. Bookeeper
C. NFS
D. Zookeeper
BookKeeper是Apache ZooKeeper项目的一个子项目。它是一个用来可靠地记录流数据的系统,主要用于存储WAL(Write Ahead Log)。我们知道,Hadoop Namenode用来存储HDSF集群的元数据,其中存在一个用于写就花数据的EditLog文件和一个存在于内存中的FsImage镜像,每当客户端与HDFS集群交互时,对于集群中数据的变更都会记录在Namenode的EditLog文件中,然后再将该变更同步到内存的FsImage镜像上。
在BookKeeper中,服务节点(多个)称为Bookie,日志流(Log Stream)称为Ledger,每个日志单元(如一条记录)被称为Ledger条目。一组服务节点Bookie主要存储Ledger,Ledger的类型非常复杂多样,那么可能某一个Bookie节点可能发生故障,然而只要我们的BookKeeper系统的多个服务节点Bookie存储中存在正确可用的节点,整个系统就可以正常对外提供服务,BookKeeper的元数据存储在ZooKeeper中(使用ZooKeeper存储的只是元数据,实际日志流数据存储在Bookie中)。
50、在M/R系统中,考虑以下情况: HDFS采用默认数据块大小(64M); InputFormat采用的是FileInputFormat; 现在有三个文件大小分别是64K,65M和127M,那么会有几个map任务产生?
A. 3个
B. 4个
C. 5个
D. 6个
—2015.6.14
51、以下描述正确的是
A. 计数器的值需要在多个任务之间传递
B. 计数器的值在job运行过程中是不稳定的
C. 枚举类型计数器比字符串类型计数器更加灵活
D. 计数器每次增加的值是1
计数器是一个全局变量。
52、以下描述错误的是
A. 一旦改变了分布式缓存里面的数据,就会自动同步到其他缓存节点
B. 分布式缓存里的内容是在Map任务执行之前被分发到其他节点的
C. 分布式缓存可以通过命令行的方式提交缓存文件
D. 分布式缓存需要用在Map端的连接操作
53、执行一个job,如果这个job的输出路径已经存在,那么程序会
A. 覆盖这个输出路径
B. 抛出警告,但是能够继续执行
C. 抛出一个异常,然后退出
D. 创建一个新的输出路径
54、以下哪个**不是**JobTracker的作用?
A. 从JobClient端接收job
B. 分配任务给TaskTracker
C. 接收来自TaskTracker的heartbeart
D. 创建每个TaskTracker上的slot
TaskTracker首先创建一个TaskTrackerStatus对象,其中包含有TaskTracker的各种信息,比如,map slot的数目,reducer slot的数目,TaskTracker所在的主机名等信息。然后,对TaskTracker的空闲的slot以及磁盘空间进行检查,如果满足相应的条件时,最终就会通过JobClient(为JobTracker的代理)将心跳信息发送给JobTracker,并得到JobTracker的响应HeartbeatResponse。(hadoop1.x)
55、Hadoop pipes编程方式使用哪种进程间通信方法?
A. Socket
B. MMap
C. Signal
D. MsqQueue
Hadoop pipes允许用户使用C++语言进行MapReduce程序设计;它采用的主要方法是将应用逻辑相关的C++代码放在单独的进程中,然后通过Socket让Java代码与C++代码通信。
56、map输出记录数计数器是属于哪个类别的计数器
A. Map-Reduce Framework
B. FileSystem Counters
C. Job Counters
D. File Output Format Counters
File System Counters
FILE: Number of bytes read=226
FILE: Number of bytes written=873182
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=2610
HDFS: Number of bytes written=215
HDFS: Number of read operations=43
HDFS: Number of large read operations=0
HDFS: Number of write operations=3
Job Counters
Launched map tasks=10
Launched reduce tasks=1
Data-local map tasks=10
Total time spent by all maps in occupied slots (ms)=30053
Total time spent by all reduces in occupied slots (ms)=3246
Map-Reduce Framework
Map input records=10
Map output records=20----------------
Map output bytes=180
Map output materialized bytes=280
Input split bytes=1430
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=280
Reduce input records=20
Reduce output records=0
Spilled Records=40
Shuffled Maps =10
Failed Shuffles=0
Merged Map outputs=10
GC time elapsed (ms)=257
CPU time spent (ms)=7820
Physical memory (bytes) snapshot=2836697088
Virtual memory (bytes) snapshot=9740886016
Total committed heap usage (bytes)=2210988032
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=1180
File Output Format Counters
Bytes Written=97