大数据Hadoop面试题整理

2018.10.22
1.抽象类与接口的区别?
1.语法层面上的区别
  1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
  2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
  3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
  4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。
2.设计层面上的区别
  1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。例如将鸟,飞机各定义为一个类,将飞行定义为一个接口。
  2)设计层面不同,抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。
  
2.构造方法的定义规则
定义时候的基本构成
修饰词 方法名(参数列表){
   方法体
}
注意点:1.没有返回值这一项 2.方法名必须与类名保持一致 3.不能被static、final、synchronized、abstract和native修饰。

3.List接口与Set接口的区别以及常用子类。
List中的元素,有序(元素的顺序与添加元素的顺序一致)、可重复、可为空;
Set中的元素,无序、不重复、只有一个空元素;
Map中的元素,无序、键不重,值可重、可一个空键、多可空值。
List常用子类ArrayList、Vector、LinkedList,其中ArrayList、Vector底层为数组,查询速度快,插入删除速度慢,LinkedList底层为双向链表,查询速度慢,插入删除速度快。Vector线程安全。
Set常用子类HashSet与TreeSet,其中HashSet底层是哈希表;TreeSet底层是二叉树。
Map常用子类HashMap与TreeMap。


2018.10.23
HDFS 和YARN 的基本概念。
1 HDFS
分布式文件系统,主/从架构
NameNode 负责管理元数据(文件名称,副本数量,文件位置,块大小)。HDFS 存储是以块存储 默认块大小 128MB,hadoop1 中默认的块大小是64MB。一个节点。
DataNode:主要存储真正的数据,多节点。
secondaryNamenode 辅助节点,用于合并两类文件。
Fsimage ,edits 作为元数据的镜像和操作的日志记录。
在HDFS第一次使用的时候需要对其进行格式化,目的是生成fsimage 和 edits 文件。
在这里插入图片描述

2 YARN 资源管理器,操作系统 可以在YARN进行任务的运行,YARN为这些运行的任务分配资源,管理。
主节点: resourceManager 负责全部集群中的资源管理,和任务分配
从节点: nodeManager 负责每个机器上的资源管理


2018.10.23
hadoop常用配置文件位置及其含义。


2018.10.24
1.HDFS的副本复制策略
hadoop官网描述如下:

对于常见情况,当复制因子为3时,HDFS的放置策略是在编写器位于datanode上时将一个副本放在本地计算机上,否则放在随机datanode上,另一个副本放在另一个(远程)机架上的节点上,最后一个在同一个远程机架的不同节点上。此策略可以减少机架间写入流量,从而提高写入性能。机架故障的可能性远小于节点故障的可能性; 此策略不会影响数据可靠性和可用性保证。但是,它确实减少了读取数据时使用的聚合网络带宽,因为块只放在两个唯一的机架而

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值