您现在的位置是:首页 > 文章详情

hadoop 2.7.1 jdk 1.7 时区问题以及解决方案.

日期:2016-03-21点击:507
安装搭建hadoop 2.7.1  不在支持jdk 1.6 了,  采用了jdk1.7.0_45  .
在系统搭建后后出现一个奇怪的现象. 

hadoop 日志,  hhbase 等这些java 应用的日志无一例外的都采用了UTC 时间,而不是东8区.

[code]

2015-11-03 06:24:16,129 INFO  
[master/hadoop52/192.168:16000-SendThread(hadoop54:2181)]
[/code]


主机的时间设置是没有问题,都是设置为 GTM+8  而主机时间实际是 14点 相差8个小时.  可以猜测 是时区设置的问题, 

首先把目标放在了java 的问题上,

经过调查,发现 java 会去读系统的时区的信息, 

在hadoop 的env 文件里 在 opts 参数上制定 java 的时区信息  "-Duser.timezone=GMT+08 "    强制 java 使用 东8区 也可以解决问题.

再进一步调查 发现java 是通过读取环境变量的时区信息来确定时区的,如果环境变量中没有设置TZ 变量, 那么java 就会读取UTC 时间. 


export TZ="Asia/Shanghai"  

再运行java  时间久正确了. 



[code]

cpu time               (seconds, -t) unlimitedmax user processes              (-u) 53248virtual memory          (kbytes, -v) unlimitedfile locks                      (-x) unlimited

2015-11-03 14:25:11,559 INFO  [main] util.VersionInfo: HBase 1.1.2
2015-11-03 14:25:11,559 INFO  [main] util.VersionInfo: Source code repository git://hw11397.local/Volumes/hbase-1.1.2RC2/hbase revision=cc2b70cf03e3378800661ec5cab11eb43fafe0fc

[/code]


再个硬件组同事, 一起测试了下, 发现 

设置 /etc/sysconfig/clock
设置为东八区 是不起作用的, 

只有设置TZ 环境变量才行. 


看来就只有设置 /etc/sysconfig/i18n
 这里加一个环境变量了. 







原文链接:https://yq.aliyun.com/articles/578878
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章