NTP方式同步服务器时间,解决org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container
一、存在的问题
Hadoop在完全分布式下多个虚拟主机协同运行时,我们需要保证所有主机的时间一致,如果服务器时间不同步,在完全分布式环境下运行代码时可能会出现如下异常:

[v_error]错误信息:org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container[/v_error]
再次先补充Linux中查看当前主机时间指令:
date
二、解决步骤:
采用NTP(Network Time Protocol)方式来实现, 选择一台机器, 作为集群的时间同步服务器, 然后分别配置服务端和集群其他机器。我这里以master机器时间为准,其他机器同这台机器时间做同步。
[v_act]1.安装ntp服务[/v_act]
我们需要在每个节点安装ntp服务

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
sudo yum install ntp -y
[v_act]2.配置时间原点[/v_act]
配置master的/etc/ntp.conf,这边采用本地机器作为时间的原点
1)只允许192.168.217.0网段的客户机进行时间同步
原:

现:

2)注释掉默认的server0~3,新增中国最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
server 210.72.145.44 perfer # 中国国家受时中心 server 202.112.10.36 # 1.cn.pool.ntp.org server 59.124.196.83 # 0.asia.pool.ntp.org
原:

现:

3) 允许上层时间服务器主动修改本机时间
新增如下:
restrict 210.72.145.44 nomodify notrap noquery restrict 202.112.10.36 nomodify notrap noquery restrict 59.124.196.83 nomodify notrap noquery

4)外部时间服务器不可用时,以本地时间作为时间服务
新增如下:
server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10

AI 工具导航
优网导航旗下AI工具导航,精选全球千款优质 AI 工具集
service ntpd start
[v_act]3.临时同步时间[/v_act]
在其他节点slave1和slave2中同步主节点时间
sudo ntpdate master
[v_act]4.定时同步时间[/v_act]
由于ntpdate只在开机运行,我们需要设置为1小时同步一次。在slave1和slave2中使用crontab来自动更新时间:
crontab -e
添加如下行:
* */1 * * * /usr/sbin/ntpdate master





