联大学堂《Hadoop应用基础(焦作师范高等专科学校)》题库及答案
8、NameNode负责管理metadata,client端每次读写请求,它都会从磁盘中读学取或则会写人metadata信息并反馈client端。()
A.正确
B.错误
正确答案:B
9、Nagios不可以监控Hadoop集群,因为它不提供Hadoop支持。()
A.正确
B.错误
正确答案:B
10、hadoopdfsadmin-report命合用于检测HDFS损坏块。()
A.正确
B.错误
正确答案:B
11、Hadoop自身具有严格的权限管理和安全措施保障集群正常运行。()
A.正确
B.错误
正确答案:B
12、HDFSFederation方案的优势?
正确答案:第一点,命名空间的扩展。因为随着集群使用时间的加长,HDFS上存放的数据也将会越来越多。这个时候如果还是将所有的数据都往一个NameNode上存放,这个文件系统会显得非常的庞大。这时候我们可以进行横向扩展,把一些大的目录分离出去.使得每个NameNode下的数据看起来更加的精简。第二点,性能的提升.这个也很好理解。当NameNode所持有的数据量达到了一个非常大规模的量级的时候(比如超过1亿个文件),这个时候NameNode的处理效率可能就会有影响,它可能比较容易的会陷入一个繁忙的状态。而整个集群将会受限于一个单点NameNode的处理效率,从而影响集群整体的吞吐量。这个时候多NameNode机制显然可以减轻很多这部分的压力。第三点,资源的隔离。这一点考虑的就比较深了。通过多个命名空间,我们可以将关键数据文件目录移到不同的NameNode上,以此不让这些关键数据的读写操作受到其他普通文件读写操作的影响。也就是说这些NameNode将会只处理特定的关键的任务所发来的请求,而屏蔽了其他普通任务的文件读写请求,以此做到了资源的隔离。千万不要小看这一点,当你发现NameNode正在处理某个不良任务的大规模的请求操作导致响应速度极慢时,你一定会非常的懊恼。
13、Hadoop是Java开发的,所以MapReduce只支持Java语言编写。()
A.正确
B.错误
正确答案:B
14、NameNode与SecondaryNameNode的区别与联系?
正确答案:1)机制流程同上;2)区别(1)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。(2)SecondaryNameNode主要用于定期合并命名空间镜像和命名空间镜像的编辑日志。3)联系:(1)SecondaryNameNode中保存了一份和namenode一致的镜像文件(fsimage)和编辑日志(edits)。(2)在主namenode发生故障时(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。
15、谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?
正确答案:1)序列化和反序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop自己开发了一套序列化机制(Writable),精简、高效。2)自定义bean对象要想序列化传输步骤及注意事项:。(1)必须实现Writable接口(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造(3)重写序列化方法(4)重写反序列化方法(5)注意反序列化的顺序和序列化的顺序完全一致(6)要想把结果显示在文件中,需要重写toString(),且用”\t”分开,方便后续用(7)如果需要将自定义的bean放在key中传输,则还需要实现comparable接口,因为mapreduce框中的shuffle过程一定会对key进行排序