Hadoop节点通信时限、扩容的一些相关操作记录

本文主要介绍一下内容:

  1. hadoop掉线时限参数设置;
  2. hadoop节点扩容
  3. hadoop白名单、黑名单设置

一、超时时长参数设置

由于Hadoop被设计是高可靠性、高扩展性,当Datanode进程死亡或者网络故障造成Datanode无法与Namenode通信,Namenode不会立即把该Datanode判定为死亡剔除集群,要经过一定时间,这个datanode就"掉线"了。
这个超时时间计算依赖与hadoop的两个配置:

  • dfs.namenode.heartbeat.recheck-interval (ms)
default  300000
This time decides the interval to check for expired datanodes. 
With this value and dfs.heartbeat.interval, 
the interval of deciding the datanode is stale or not is also calculated. 
The unit of this configuration is millisecond
  • dfs.heartbeat.interval (s)
default   3
Determines datanode heartbeat interval in seconds.
image.png

hadoop界面很清晰展示(Last contact)上次心跳时间。
具体超时时间计算公式:

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

二、hadoop扩容

hadoop是具备高拓展性,可以很容易的拓展集群容量。

  1. 准备一台相同的主机(虚拟机直接克隆即可)
  2. 主机配置ip和主机名称。
    hdfs有配置项dfs.namenode.datanode.registration.ip-hostname-check,默认true,表示连接的datanode必须用主机名注册。如果没有配置主机名,则新加入的节点无法反向DNS查找到主机名会被拒绝连接namenode.
    或者不配置,将此配置项改为false,代表host+hostname注册也可行
  3. 复制hadoop、环境变量profile到新节点相同的目录下(scp,rsync都行),source 环境变量生效
  4. 直接启动datanode即可注册集群
hadoop-daemon.sh start datanode

namdenode的slaves配置只是代表start-dfs.sh群起的时候所需要启动的主机,并不代表每加入一个都需要在slaves中配置,所以slaves中不需要加入新节点主机名

三、白名单、黑名单配置

  1. 白名单
    在hadoop 根目录{HADOOP_HOME}/etc/hadoop下新建 dfs.hosts文件:
vim dfs.hosts

-------加入允许连接到namenode的主机名称------------------
cdh1 
cdh2
cdh3

编辑hdfs-site.xml

vim hdfs-site.xml 

-----------------添加如下配置项--------------------------

dfs.hosts
/opt/cdh5.3.6/hadoop-2.5.0/etc/hadoop/dfs.hosts

配置文件分发到各个节点
刷新配置: hdfs dfsadmin -refreshNodes


image.png

并且会发现cdh4节点datanode进程直接被关闭了

  1. 黑名单
    在hadoop 根目录{HADOOP_HOME}/etc/hadoop下新建 dfs.hosts.excludes文件:
vim dfs.hosts.excludes

-------加入禁止连接到namenode的主机名称------------------
cdh4

编辑hdfs-site.xml

vim hdfs-site.xml 

-----------------添加如下配置项--------------------------

dfs.hosts.exclude
/opt/cdh5.3.6/hadoop-2.5.0/etc/hadoop/dfs.hosts.excludes


#刷新配置
hdfs dfsadmin -refreshNodes
image.png

等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器,只是退役了该节点,并没有强制关闭该节点的datanode进程。
注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役,

你可能感兴趣的:(Hadoop节点通信时限、扩容的一些相关操作记录)