hadoop知识点详解(含金量高)

文章有点长,耐心看完嗷

1.什么是HDFS文件系统?
HDFS是大数据开源框架hadoop的组件之一,全称(Hadoop Distributed File System),它是一个分布式文件系统,由多台服务器联合起来实现文件存储功能,通过目录树来定位文件,集群中的服务器都有有各自的角色。

2.HDFS文件系统有什么特点?
1.数据通过副本存储,提高容错性
2.能够处理PB级及以上数据,可处理百万级文件数量3.节约成本,可分布在“廉价”机器上
4.不适合低延时数据访问
5.不适合对大量文件的存储和访问6.单线程操作文件不能多用户执行写操作,并且不支持文件随机修改

3.HDFS中namenode和datanode得作用?
namenode:
1.负责接受客户端读写数据请求
2.负责数据块副本的存储策略
3.负责管理块数据的映射关系4.储存元数据信息datanode:
1.存储实际的数据块
2.真实处理数据块的读/写操作

4.HDFS默认数据块得大小是多少?为什么?
HDFS目前默认块大小在Hadoop2.x版本中是128M,老版本中是64M,因为目前磁盘的传输率约为100M/s,而HDFS读取文件时最佳的寻址时间为10ms,寻址时间为传输时间的百分之1时最佳,所以定义块大小为128M,1秒左右可以快速读取完毕;本质上HDFS的块大小取决于磁盘的传输速率。

5.为什么HDFS不支持存储小文件?
1)存储大量小文件会占用NameNode大量的内存和磁盘来存储文件目录和块信息。是不可取的,因为NameNode的内存是有限的;
2)读取小文件时寻址时间会超过读取时间,不合理,违反了HDFS的设计目标.

6.Hadoop fs | hdfs dfs 命令分类本地文件
-> HDFS -put 将本地数据上传至hdfs
-copyFromLocal 将本地文件数据拷贝到hdfs
-moveFromLocal 将本地文件数据移动到hdfs,成功后本地数据会删除
-appendToFile 追加一个文件到已经存在的文件末尾 HDFS与HDFS之间
-ls 查看hdfs文件目录
-mkdir 在HDFS上创建目录
-rm 删除文件或者文件夹
-rmr | -rm -r 递归删除
-cp 从一个目录拷贝文件至另一目录
-mv 在HDFS目录中移动文件
-chown 修改文件所属用户权限
-chmod 修改文件所属读写权限
-du -h 文件夹暂用的空间大小
-df -h 查看系统分区情况
-cat 查看文件HFDS -> 本地
-get 从hdfs下载文件至本地
-getmerge 合并hdfs目录下的文件至本地
-copyToLocal 从hdfs拷贝文件至本地其他-setrep 设置文件副本数(注意:具体的副本数得看DataNode的数量)
-help 帮助命令

7.说说hdfs的文件上传的流程
1.首先客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。
2.NameNode返回是否可以上传。
3.如果文件大于128M则分块存储,客户端请求第一个 Block上传到哪几个DataNode服务器上。
4.NameNode根据副本储存策略返回3个DataNode节点,假如为dn1、dn2、dn3。
5.客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求调用dn2,dn2调用dn3,建立通信管道完成,dn1、dn2、dn3逐级应答客户端。
6.客户端以Packet为单位往dn1上传第一个Block数据,dn1收到Packet就会传给dn2,dn2传给dn3;dn1,dn2,dn3每接收packet会放入一个待写队列等待写入数据,落盘。
7.当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器,重复执行3-6步。

8.我们在上传文件的时候如何namenode选取datanode存储副本?有什么优势?
HDFS的放置策略是将一个副本放置在本地机架中的一个节点上,将另一个副本放置在本地机架中的另一个节点上,最后一个副本放置在不同机架中的另一个节点上(一个副本在Client所 处的节点上。如果客户端在集群外,随机选一个,第二个副本和第一个副本位于相同机架,随机节点,第三个副本位于不同机架,随机节点)。
优点:该策略减少了机架间的写流量,通常可以提高写性能。机架故障的机会远小于节点故障的机会。此策略不会影响数据的可靠性和可用性保证

9.说说文件的下载流程
1.客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。
2.挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。
3.DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。
4.客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

10.描述一下Namenode和secondarynamenode的工作机制1. NameNode启动和工作内容
1.1第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,会加载编辑日志和镜像文件到内存。
1.2客户端对元数据进行增删改的请求。 1.3NameNode记录操作日志,更新滚动日志。 1.4NameNode在内存中对元数据进行增删改。
2. Secondary NameNode工作内容
2.1 2NN询问NN是否需要CheckPoint(合并镜像和编辑日志),并带回NameNode是否执行结果。
2.2 NN请求执行CheckPoint
2.3 NN滚动正在写的Edits编辑日志。
2.4 将滚动前的编辑日志和镜像文件拷贝到2NN。 2.5 2NN加载编辑日志和镜像文件到内存,并执行合并,生成新的镜像文件fsimage.chkpoint。
2.6 2NN拷贝fsimage.chkpoint到NN。
2.7 NN将fsimage.chkpoint重新命名成fsimage,替换之间旧的fsimage

11.fsimage和edits文件分别指的是什么?存的是什么?
fsimage:HDFS文件系统元数据的镜像文件,其中包含HDFS文件系统的所有目录和文件inode及相关属性的序列化信息。
edits:用户操作的编辑日志文件,存放HDFS文件系统的所有更新操作的动作,文件所有写操作会被记录到Edits文件中。

12.默认情况下进行ckeckpoint(合并镜像及编辑日志)的触发条件是什么?
默认情况下,2NN每隔一小时执行一次checkpoint默认情况下,一分钟检查一次Edits文件的操作次数,当操作次数达到1百万时,2NN执行一次checkpoint。

13.工作中假如你的namenode发生故障,导致namenode中的元数据丢失,如何恢复数据?
方法一:将2NN所在服务器元数据存储目录namesecondary中数据拷贝到NameNode存储元数据的name目录下,重新开启服务即可。
方法二:使用-importCheckpoint选项启动NameNode守护进程,将2NN所在服务器元数据存储目录namesecondary拷贝到NameNode所在服务器的同级目录下,导入检查点数据,重新开启服务即可。
1.修改hdfs-site.xml中的 dfs.namenode.checkpoint.period 120 dfs.namenode.name.dir /opt/module/hadoop-2.7.2/data/tmp/dfs/name
导入检查点数据:hdfs namenode -importCheckpoint

14.什么情况下集群会进入安全模式?安全模式下集群有有什么限制?如何查看、进入、退出、等待安全模式
1.NameNode启动时,会将镜像文件(Fsimage)和编辑日志(Edits)加载到内存。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的Fsimage文件和一个空的编辑日志。此时,NameNode开始监听DataNode请求。这个过程期间,NameNode处于安全模式。当数据块的副本数不满足(dfs.replication.min=1)最小副本数时,不会主动退出安全模式;
2.安全模式下:NameNode的文件系统对于客户端来说是只读的。
3.(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)
(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)
(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)
(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)注意:集群正常启动完成后,自动退出安全模式,如果无法正常退出可使用hdfs dfsadmin -safemode leave退出安全模式;对于全新创建的HDFS集群,NameNode启动后不会进入安全模式,因为没有Block信息。
15.启动集群时,我们要对namenode进行格式化操作?为什么只能格式化一次格式化命令:hdfs namenode -format ,因为格式化NameNode,就会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据(现象datanode无法正常启动);所以,重新格式化NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode,后再启动集群

16.在搭建集群的过程中我们需要开启哪些进程服务才能确保集群能够正常的读取数据、以及在Yarn上完成计算任务?
需要开启以下进程:
namenode datanode secondarynamenoderesourcemanager nodemanager

17.公司现在有4台服务器hadoop1、hadoop2、hadoop3、hadoop4 4台服务器,hadoop2和hadoop4配置相对较好,根据现有配置设计一个集群,并简单说说基本的配置流程?
hadoop1 hadoop2 hadoop3 hadoop4datanode datanode datanode datanodenodemanager nodemanager nodemanager nodemanagernamenode resourcemanager
搭建步骤:参考总结流程

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Heartworm

你的鼓励就是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值