欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HDFS知识点

程序员文章站 2022-04-10 23:49:01
...

一、 通过代码验证集群的配置文件的优先级

HDFS知识点
HDFS知识点
HDFS知识点
HDFS知识点

二、 通过代码验证seek指定位置下载

HDFS知识点
HDFS知识点
HDFS知识点
HDFS知识点
HDFS知识点

三、hdfs的文件的上传、下载流程

HDFS知识点
HDFS知识点

四、 hdfs的默认副本策略

HDFS知识点
·Hadoop2.7.2副本节点选择

第一个副本在Client所处的节点上。如果客户端在集群外,随机选一个

第二个副本和第一个副本位于相同机架,随机节点

第三个副本位于不同机架,随机节点

五、 nn和2nn的工作机制?2nn有什么作用?集群的故障处理、集群的安全模式

1、NameNode工作机制
HDFS知识点
A.第一阶段:NameNode启动

  ·第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存

  ·客户端对元数据进行增删改的请求

  ·NameNode记录操作日志,更新滚动日志

  ·NameNode在内存中对元数据进行增删改

B.第二阶段:SecondaryNameNode工作

  ·Secondary NameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果

  ·Secondary NameNode请求执行CheckPoint

  ·NameNode滚动正在写的Edits日志

  ·将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode

  ·Secondary NameNode加载编辑日志和镜像文件到内存,并合并

  ·生成新的镜像文件fsimage.chkpoint

  ·拷贝fsimage.chkpoint到NameNode

  ·NameNode将fsimage.chkpoint重新命名成fsimage

2、2nn作用

·2nn的作用就是帮助NameNode进行Edits和Fsimage的合并工作

3、集群的故障处理

NameNode故障后,可以采用如下两种方法恢复数据

A.将SecondaryNameNode中数据拷贝到NameNode存储数据的目录

  ·kill -9 NameNode进程

  ·删除NameNode存储的数据:rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*

  ·拷贝SecondaryNameNode中数据到原NameNode存储数据目录

  ·重新启动NameNode

B.使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode 中数据拷贝到NameNode目录中

  ·修改hdfs-site.xml中的

    <property>

               <name>dfs.namenode.checkpoint.period</name>

               <value>120</value>

    </property>

    <property>

               <name>dfs.namenode.name.dir</name>

               <value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value>

    </property>

  ·kill -9 NameNode进程

  ·删除NameNode存储的数据:rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*

  ·如果SecondaryNameNode和NameNode不在一个主机节点上,需要将                                     SecondaryNameNode存储数据的目录拷贝到NameNode存储数据的平级目录,并            删除in_use.lock文件

  ·导入检查点数据(等待一会ctrl+c结束掉):bin/hdfs namenode -importCheckpoint

  ·启动NameNode

4、集群的安全模式

·查看安全模式状态:bin/hdfs dfsadmin -safemode get

·进入安全模式状态:bin/hdfs dfsadmin -safemode enter

·离开安全模式状态:bin/hdfs dfsadmin -safemode leave

·等待安全模式状态:bin/hdfs dfsadmin -safemode wait

六、dn的工作机制

HDFS知识点
·一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本 身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳

·DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报 所有的块信息

·心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数 据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心 跳,则认为该节点不可用

·集群运行中可以安全加入和退出一些机器

七、判断dn的离线

A.DataNode进程死亡或者网络故障造成DataNode无法与NameNode通信

B.NameNode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长

C.HDFS默认的超时时长为10分钟+30秒

D.如果定义超时时间为TimeOut,则超时时长的计算公式为:

  TimeOut = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval

  默认dfs.namenode.heartbeat.recheck-interval 大小为5分钟, dfs.heartbeat.interval默认为3秒

八、添加新节点

A.在hadoop01主机上再克隆一台hadoop04主机

B.修改IP地址和主机名称

C.删除原来HDFS文件系统留存的文件(data和logs)

D.source一下配置文件

E.直接启动DataNode,即可关联到集群

F.在hadoop04上上传文件

G.如果数据不均衡,可以用命令实现集群的再平衡

九、 什么是黑名单?什么是白名单?如何退役旧节点?如何设置白名单?

A.在黑名单上面的主机都会被强制退出

B.添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被 退出

C.添加白名单,黑名单退役;不允许白名单和黑名单中同时出现一个主机名称

D.设置白名单

  ·在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts文件

    添加主机名称(不添加hadoop04)

    hadoop01

    hadoop02

    hadoop03

  ·在NameNode的hdfs-site.xml配置文件中增加dfs.hosts属性

    <property>

           <name>dfs.hosts</name>

           <value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>

    </property>

  ·配置文件分发:myrsync hdfs-site.xml

  ·刷新NameNode:hdfs dfsadmin -refreshNodes

  ·更新ResourceManager节点:yarn rmadmin -refreshNodes

  ·在web浏览器上查看

  ·如果数据不均衡,可以用命令实现集群的再平衡
相关标签: hdfs