如何,保证集群下的web应用文件同步
1)比方说我先在有5台服务器,想做一个集群,是不是意味着我要把应用程序在5台服务器上分别部署?如果这样的话,session能使先共享吗?
根据中间件不同部署方式也不同。tomcat下面就要分别部署了,weblogic支持分别部署,也支持统一部署(两种方式各有优缺点,推荐分别部署)。
中间件基本上都支持session共享复制,不过实现方式可能有点区别(有的是基于容器,有的是基于memcache等等)。可参考之前的问题(关于jboss的):
1、在133133102(monitor)上安装ntp server。
root@monitor:~# apt-get install ntp
2、修改/etc/ntpconf如下:(参考了http://blogsinacomcn/s/blog_6b86fdc50100ojfnhtml)
# /etc/ntpconf, configuration for ntpd; see ntpconf(5) for help
driftfile /var/lib/ntp/ntpdrift
# Enable this if you want statistics to be logged
#statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# Specify one or more NTP servers
# Use servers from the NTP Pool Project Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525) See http://wwwpoolntporg/joinhtml for
# more information
#server 0ubuntupoolntporg
#server 1ubuntupoolntporg
#server 2ubuntupoolntporg
#server 3ubuntupoolntporg
# Use Ubuntu's ntp server as a fallback
#server ntpubuntucom
server 12712710 minpoll 4 maxpoll 5
fudge 12712710 stratum 2
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopthtml for
# details The web page <http://supportntporg/bin/view/Support/AccessRestrictions>
# might also be helpful
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers
# By default, exchange time with everybody, but don't allow configuration
#restrict -4 default kod notrap nomodify nopeer noquery
#restrict -6 default kod notrap nomodify nopeer noquery
restrict -4 default kod nomodify noper
restrict -6 default kod nomodify noper
# Local users may interrogate the ntp server more closely
restrict 127001
restrict ::1
# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated
#restrict 1921681230 mask 2552552550 notrust
# If you want to provide time to your local subnet, change the next line
# (Again, the address is an example only)
#broadcast 192168123255
# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient
3、运行ntpdate命令
首先重启一下ntp服务
root@monitor:/etc#/etc/initd/ntp restart
再运行
root@monitor:/etc# ntpdate -q 127001
得到
server 127001, stratum 3, offset -0000003, delay 002565
23 Sep 17:12:00 ntpdate[11502]: adjust time server 127001 offset -0000003 sec
4、将其他节点13313310的时间与133133102同步
在其他每一个节点运行命令
root@slave1:~# ntpdate 133133102
这时候发现节点间的时间同步了,但ntpdate只在开机运行,我们若要设置为1小时同步一次,那么进行第5步
5、将其他节点13313310的时间定期与133133102同步
安装完以后使用crontab来自动更新时间:
#crontab -e
添加如下行:
/1 /usr/sbin/ntpdate 133133102
这行的意思是每个小时与与133133102时间同步一次。
6、通过date命令发现所有节点时间都一致了
问题:
部分主机宕机后,CDH集群启动成功,但是有某些主机提示“无法找到主机的NTP 服务,或该服务未响应时钟偏差请求”
解决步骤:
1先同步服务器时钟
执行命令:
service ntpd stop 停止ntp服务
ntpdate 主机ip 同步主机时钟
service ntpd start 启动ntp服务
service ntpd status 查看服务启动情况
ntpq -pn 查看同步的服务器IP
ntpstat 查看同步结果
2在CDH界面停止主机上的角色
3进入该主机的CDH安装目录执行 /cloudera-scm-agent restart (即需要在问题主机上重启cloudera-scm-agent服务)
目录在 etc/initd下
4等待CDH界面刷新,问题解决,大概等3 5分钟就看不到时钟偏差问题了。
解决思路:
1同步服务器时钟是为了确定是否是ntp服务本身的问题。
2发现服务器时钟没有问题,所以不是ntp服务本身的问题。
其中这句话说,如果该命令失败、NTP 未与服务器同步,或主机的 NTP 后台程序未运行或无法联系,该测试将返回运行状况“不良”。
所以可能是CDH集群本身没有接收到时间同步服务器的结果,于是执行重启agent的命令。至此问题解决!
0条评论