HDFS*****
1.HDFS为什么不适合存储大量小文件?
答:
(1)大小量文件的元数据会占用NameNode大量内存空间
解析: 文件的元数据(包括文件被分成了哪些blocks,每个block存储在哪些服务器的哪个block块上),都是存储在namenode上的。
HDFS的每个文件、目录、数据块占用150B,因此300M内存情况下,只能存储不超过300M/150=2M个文件/目录/数据块的元数据 。
(2)磁盘寻道时间超过读取时间
解析:HDFS为了使数据的传输速度和硬盘的传输速度接近,则设计将寻道时间(Seek)相对最小化,将block的大小设置的比较大,这样读写数据块的时间将远大于寻道时间,接近于硬盘的传输速度。

2.HDFS 何时离开安全模式?
答:ActiveNameNode启动时HDFS进入安全模式只读,datanode主动汇报可用block的可用情况
即上报率=可用block数量/namenode元数据记录的block数>=99.9%时离开安全模式
何时触发安全模式?
1.NameNode内存不够;2.DataNode无法启动;3.NameNode重启;4.block上报率低阈值;5.日至报错;6.强制关机

3.ActiveNN与standbyNN的切换?
答:QJM机制实现最终一致,允许延迟,journalnode(2N+1)只要N+1个写入成功即可,他写edits编辑日志文件,activeNN挂掉standbyNN状态变为active

4.HDFS写文件过程?
答:
(1)客户端请求上传文件,输入命令;
(2)检查HDFS目录,允许上传;
(3)客户端将文件切块block并请求NameNode;
(4)NameNode返回DataNode信息;
(5)客户端与DataNode建立传输,写成功后通知NameNode;/先写数据再写日志
(6)更新edits编辑日志(立即)和fsimage文件(定期)写入NameNode,同时写入journalnode,最后写入内存(最新);
(7)后面standbyNN与activeNN定期同步。

5.HDFS优缺点?
优点:高可用(NameNodeHA),高容错(冗余多副本),高扩展(10k),海量数据,成本低
缺点:大量小文件不可存,不支持并发写入,不支持低延时,不支持随机。

6.HDFS元数据俩种存储方式?
内存元数据:NameNode
文件元数据:edits+fsimage

7.HDFS最小文件存储单元 block?
(1)存储在datanode,大小默认128M,多副本、均匀分布在多个datanode(默认三个副本);
(2)block放置策略:副本1放在clinet 副本2放在另一台机架,副本3放在和副本2一起的另外节点,其他随意;
(3)block文件 命名:“ blk blk_文件大小”

8.HDFS各个角色
(1)ActiveNN作用:
唯一的集群管理节点;管理HDFS文件系统命名空间;维护元数据信息(文件位置、权限、块信息等);处理客户端请求;管理块策略
(2)standbyNN作用:
备份master节点宕机后替换activeNN;周期同步activeNN的edits文件,并定期合并fsimage文件和edits到本地磁盘;
(3)nameNode作用:
存储元数据(fsimage+edits),fsimage(文件块信息、位置、目录、副本数),edits(文件操作记录)
(4)dataNode作用:
Slive工作节点;存储数据block;定期与namenode心跳汇报block信息(集群启动有可用block数汇报);客户端的数据读写操作;

9.HDFS高可用?
通过QJM机制部署2N+1个journalNode节点,N+1个操作成功(写edits)即可,利用ZK选举Active节点