解决Hadoop集群时间不同步问题

我们在执行wordcount的时候看到报错,提示机器上的系统时间可能不同步,检查系统时间和时区。

可以看到我们遇到报错,提示 机器上的系统时间可能不同步,检查系统时间和时区。我们来结局这个问题,思路是查看每个节点的时间并进行同步。

master:

slave1:

slave2:

 看到我们三个节点的时间确定是不同步的,我们来进行同步,同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时同步,比如,每隔十分钟,同步一次时间。

检查 ntp 是否安装

# rpm -qa|grep ntp

 

我们先安装ntp命令

# yum install -y ntp

 

同步互联网时间:

# ntpdate -u ntp.api.bz

 

修改ntp配置文件

# vim /etc/ntp.conf

修改内容如下

修改一,授权192.168.115.0-192.168.115.255网段上的所有机器可以从这台机器上查询和同步时间;

修改二,集群在局域网中,不使用其他互联网上的时间

注释掉以下内容:

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

 

修改/etc/sysconfig/ntpd 文件

# vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

 

重新启动ntpd服务

# service ntpd status

# service ntpd start

设置ntpd服务开机启动

# chkconfig ntpd on

设置定时任务

# crontab -e

设置定时任务如下: 我这里设置1分钟同步一次,可以自己修改
*/1 * * * * /usr/sbin/ntpdate master(主机名)  

 

关闭从节点上(slave1、slave2)的ntp服务和自启

# systemctl stop ntpd

# systemctl disable ntpd

 

在从节点(slave1、slave2)编写定时任务

# crontab -e



*/1 * * * * /usr/sbin/ntpdate master(主机名)    

 

我们可以尝试修改机器时间

1 分钟后查看机器是否与时间服务器同步

可以看到从节点的时间已经向主节点同步了,问题解决。

我们首先需要删除输出目录,否则会报错提示已有该目录

# hdfs dfs -rm -r /output/data

我们再执行以下命令:

# hadoop jar /usr/cstor/Hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount /input/data.txt /output/data

 

运行成功,我们来查看一下结果

# hdfs dfs -cat /output/data/part-r-00000

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值