打包MapReduce程序为jar包后在Hadoop集群执行时出错:
原因:集群时间不一致造成的
解决:同步集群时间即可
同步步骤:
思路:比如集群有三台机器:node1,node2,node3,将node1作为时间服务器,其它两台与node1同步即可。
一、设置时间服务器:(node1中执行)
1、vi /etc/ntp.conf
注释掉restrict default kod nomodify notrap nopeer noquery(开启了ntp server 的功能),并添加:
restrict 192.168.245.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
这里192.168.245.0是这三台机器所在的网段,使得同网段的机器可以与node1时间同步。后两行是让本机的ntpd和本地硬件时间同步
2、service ntpd restart
3、chkconfig ntpd on(开机启动)
此时,时间服务器就好了
二、在其它机器中同步(node2、node3中都执行)
1、service ntpd stop
2、chkconfig ntpd off
3、ntpdate node1
4、crontab -e,添加如下两行:
#synchronize time with node1
/5 * * * /usr/sbin/ntpdate nimbus >/dev/null 2>&1
保存退出
OK