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和主机名称。\color{red}{master节点hosts文件需要加上新加的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

\color{red}{误区:}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 

-----------------添加如下配置项--------------------------
<property>
<name>dfs.hosts</name>
<value>/opt/cdh5.3.6/hadoop-2.5.0/etc/hadoop/dfs.hosts</value>
</property>

配置文件分发到各个节点
刷新配置: 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 

-----------------添加如下配置项--------------------------
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/cdh5.3.6/hadoop-2.5.0/etc/hadoop/dfs.hosts.excludes</value>
</property>

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 二 、 HDFS体系结构 HDFS 采用的是master/slave架构设计 , 一个HDFS集群包含一个单独的 ...
    什么都不会的码农丶阅读 1,588评论 0 1
  • HDFS文件系统 HDFS是一个分布式文件系统,采用分而治之的设计思想,将大文件、大批量文件,分布式存放在大量服务...
    spilledyear阅读 1,407评论 0 0
  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 3,792评论 0 14
  • 翻译: http://hadoop.apache.org/docs/stable/hadoop-project-d...
    金刚_30bf阅读 510评论 0 0
  • 概述:那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡...
    PySong阅读 191评论 0 1