DataNode工作机制

DataNode工作机制

(1)一个数据块在 DN 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

(2)DN 启动后向 NN 注册,通过后,周期性(1小时)的向 NN 上报所有的块信息。

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

(4)集群运行中可以安全加入和退出一些机器。

数据完整性

(1)当 DN 读取 Block 的时候,它会计算 CheckSum。

(2)如果计算后的 CheckSum,与 Block 创建时值不一样,说明 Block 已经损坏。

(3)Client 读取其他 DN上的 Block。

(4)DN 在其文件创建后周期验证 CheckSum,如图:。

DN掉线时限参数设置

(1)DN 进程死亡或网络故障造成 DN 无法与 NN 通信。

(2)NN 不会立即把该 NN 判断为死亡,会经过一段时间,这段时间称为超时时长。

(3)HDFS 默认的超时时长为10分钟+30秒。

(4)如果定义超时时长为TimeOut,则超时时长计算公式为:

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

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

注意:hdfs-site.xml 配置文件中的heartbeat.recheck.interval的单位为毫秒,dfs.heartbeat.interval的单位为

配置 hdfs-site.xml 如下:

<property>
    <name>dfs.namenode.heartbeat.recheck-interval</name>
    <value>300000</value>
</property>
<property>
    <name> dfs.heartbeat.interval </name>
    <value>3</value>
</property>

服役新节点

环境准备

(1)克隆原主机 or 添加新主机

(2)修改主机 IP 地址和主机名称

vim /etc/hosts

vim /etc/hostname

(3)删除原有的 HDFS 文件系统的两个文件(hadoop-2.7.7/data 和 log)

进入hadoop目录:rm -rf ./data  ./log

(4)source 一下配置文件/etc/profile

source /etc/profile

文件配置

(1)配置 NN 的机器,修改配置文件 core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
 <property>
              <name>fs.defaultFS</name>
              <value>hdfs://hadoop101:9000</value>
</property>

(2)配置 yarn 的机器,修改配置文件 yarn-site.xml

<!-- 指定YARN的ResourceManager的地址 -->
<property>
              <name>yarn.resourcemanager.hostname</name>
              <value>hadoop102</value>
</property>

注意:需要配置 NN 机器以及 yarn 机器到本机的映射和本机到 NN 及 yarn 机器的映射关系,不然无法找到!

验证安装新节点是否成功

(1)启动原hadoop集群,并在本机启动 DN

start-dfs.sh

start-yarn.sh

sbin/hadoop-daemon.sh  start datanode

(2)进入地址:http://hadoop101:50070/dfshealth.html#tab-datanode 查看配置的 DN 节点是否正常启动成功!成功则表示服役新节点安装完成!

退役新节点

添加白名单

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

如有主机 hadoop101、hadoop102、hadoop103、hadoop104,配置步骤如下:

(1)在hadoop目录:hadoop-2.7.7/etc/hadoop 目录下创建 dfs.hosts 文件

vim dfs.hosts

添加如下主机名,不添加 hadoop104

hadoop101

hadoop102

hadoop103

(2)在 NN 的 hdfs-site.xml 配置文件中添加如下属性:

<property>
    <name>dfs.hosts</name>
    <value>/opt/module/hadoop-2.7.7/etc/hadoop/dfs.hosts</value>
</property>

(3)如有同步脚本则使用同步脚本把 hdfs-site.xml文件分发到其他服务器,没有则需要每台机器都要配置

xsync   hdfs-site.xml

(4)刷新 NN

hdfs dfsadmin -refreshNodes

(5)刷新 ResourceManager

yarn rmadmin -refreshNodes

(6)进入:http://hadoop101:50070/dfshealth.html#tab-datanode   查看只有 hadoop101、hadoop102、hadoop103 则配置成功!

添加黑名单

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

实现步骤如下:

(1)在 NN 的配置文件目录 hadoop-2.7.7/etc/hadoop 下创建 dfs.hosts.exclude 文件

touch dfs.hosts.exclude

vim dfs.hosts.exclude   (添加要退役的节点 hadoop104)

hadoop104

(2)在 NN 的 hdfs-site.xml 配置文件中增加如下配置:

<property>
      <name>dfs.hosts.exclude</name>
      <value>/opt/module/hadoop-2.7.7/etc/hadoop/dfs.hosts.exclude</value>
</property>

(3)刷新 NN 、刷新 ResourceManager

hdfs dfsadmin -refreshNodes

yarn rmadmin -refreshNodes

(4)进入:http://hadoop101:50070/dfshealth.html#tab-datanode 查看退役节点状态为 decommission in progress(退役中),说明数据节点正在复制块到其他节点。

(5)等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。

注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。

sbin/hadoop-daemon.sh stop datanode

sbin/yarn-daemon.sh stop nodemanager

注意:服役退役可能会造成集群数据不均衡,如hadoop上数据不均衡,用如下命令可实现集群再均衡

sbin/start-balancer.sh

DN 配置多目录

(1)DN 也可以配置多个目录,每个目录存储的数据不一样。非副本目录数据。

(2)配置文件 hdfs-site.xml 添加如下内容:

<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
</property>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值