【大数据开发】HDFS——配置时间同步、动态节点上线和下线

一、配置时间同步

1)安装命令ntp
yum -y install ntp.x86_64

(2)配置ntpserver
vi /etc/ntp.conf
yy复制一行 p粘贴

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.10.131 mask 255.255.255.0 nomodify notrap

修改结果如下图

(3) 启动ntp协议并查看状态
systemctl start ntpd
systemctl status ntpd

(4)配置ntp开机自启
systemctl enable ntpd


下面是测试,测试一下有没有配好ntp
(4)再另外的结点同步一下
ntpdate host01
要是没有ntpdate安装该命令
yum list | grep ntpdate
yum -y install ntpdate.x86_64


(5)在所有从机上配置定时器
启动crond进程
service crond start

crontab常用命令:
crontab -e 编辑crontab文件,编辑后crond进程自动读取
crontab -l 列出用户crontab文件的详细内容
crontab -r 删除crontab文件

定时执行很简单,只需要把命令写成
crontab -e
*/1 * * * * /usr/sbin/ntpdate host02 >> /dev/null
每分钟都会自动和主机同步时间

然后再设置开机自启该服务即可
systemctl enable crond



【大数据开发】HDFS——配置时间同步、动态节点上线和下线_第1张图片

二、动态节点上线和下线

1.上线

准备工作:准备一台配置了jdk和hadoop的新主机slave3,我这取名叫host02。如果克隆的话,别忘记删除 $ {hadoop.tmp.dir}/dfs/目录和logs目录。hadoop.tmp.dir属性的的具体位置可以在core-site.xml中查看,logs在$ HADOOP_HOME中。
具体步骤如下:

1)在namenode节点的hdfs-site.xml中添加下面属性
<property> 
	<name>dfs.hosts</name> 
	<value>/usr/local/hadoop/etc/hadoop/include</value> 
	<description>命名包含允许连接到namenode的主机列表的文件。必须指定文件的完整路径名。如果值为空,则允许所有主机</description>
</property> 

注意:include这个文件名,可以自定义。


(2)将待上线的主机名(host02)添加到dfs.hosts指定的文件内

[root@host01 hadoop]# touch include #创建文件 
[root@host01 hadoop]# vi include 
host01 
host02   #将要上线的主机名 
host03 
host04 

注意:dfs.hosts指定的文件中必须存储所有的在线主机名

(3)在namenode上刷新节点
[root@host01 hadoop]# hadoop dfsadmin -refreshNodes

(4)在要上线的节点重启 datanode
[root@host01 hadoop]# hadoop-daemon.sh start datanode.

通过hadoop dfsadmin -report 或者web界面,可以看到, 节点已经上线。
(5)最后修改slaves,添加上新主机名。以便集群重启时,带上此节点。

2.下线

1)修改namenode节点的dfs.hosts.exclude属性,指定文件exclude的全路径
<property> 
	<name>dfs.hosts.exclude</name> 			
	<value>/usr/local/hadoop/etc/hadoop/exclude</value> 
</property> 

注意:dexclude这个文件名,可以自定义

(2)将待下线的主机名(qianfeng01)加入到dfs.hosts.exclude指定的文件中
[root@host01 hadoop]# touch exclude #创建exclude文件 
[root@host01 hadoop]# vi exclude 
host02

(3)在namenode上刷新节点
[root@host01 hadoop]# hadoop dfsadmin -refreshNodes

(4)通过hadoop dfsadmin -report或者web界面,进行查看

此时,该datanode状态转化为Decommission In Progress。表示该datanode正在退役中,进行数据块的转移。 因此会花上一段时间。需要等待一段时间,当decommission进程完成数据移动, datanode状态会转变为Decommissioned, 然后datanode会自 动停止datanode进程。 然后你可以看见dead nodes下多了一个你想要下线的节点。

(5)然后删除include 和 exclude 中该节点的hosts, 重新刷新hadoop dfsadmin -
refreshNodes。

(6)注意: 当你下线一个datanode节点, 有可能该节点长时间处于Decommission In Progress 状态, 一直不能转变成Decommissioned。 请你用hadoop fsck / 检查下是否有些块少于指定的块数, 特别注意那些mapreduce的临时文件。 将这些删除, 并且从垃圾箱移除, 该节点就可以顺利下线。



你可能感兴趣的:(Hadoop,hadoop,大数据,hdfs)