温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
在部署CDH集群时由于OS的操作系统指定的时区是UTC,这时如果我们不想修改集群操作系统的时区,在查询数据时如何强制Hive使用指定时区,接下来的文章就介绍如何为Hive指定时区。
1.测试前环境查看
2.指定Hive时区
3.验证时区是否生效
1.CM5.14.3/CDH5.14.2
2.指定前环境查看
1.集群的操作系统时区如下
此时操作系统的时区为UTC
2.使用HiveCLI查看当前时间
[root@ip-172-31-5-171 ~]# hive
hive> SELECT current_timestamp()
> ;
OK
2018-05-07 17:31:10.223
Time taken: 2.169 seconds, Fetched: 1 row(s)
hive> [root@ip-172-31-5-171 ~]#
[root@ip-172-31-5-171 ~]# date
Mon May 7 17:31:22 UTC 2018
[root@ip-172-31-5-171 ~]#
(可左右滑动)
3.使用Beeline查看当前时间
[root@ip-172-31-5-171 ~]# date
Mon May 7 17:40:24 UTC 2018
[root@ip-172-31-5-171 ~]# beeline
beeline> !connect jdbc:hive2://ip-172-31-8-230:10000 hive hive
0: jdbc:hive2://ip-172-31-8-230:10000> SELECT current_timestamp();
INFO : OK
+--------------------------+--+
| _c0 |
+--------------------------+--+
| 2018-05-07 17:40:39.445 |
+--------------------------+--+
1 row selected (1.393 seconds)
0: jdbc:hive2://ip-172-31-8-230:10000>
(可左右滑动)
如上测试可以看到通过HiveCLI和HiveServer2访问Hive查询当前时间均与OS的时间一致。
3.修改Hive配置指定时区
1.使用管理员登录Cloudera Manager,进入Hive服务
2.点击“配置”,进入配置页面并搜索“opt”,在JVM参数中增加如下配置
在JVM的启动参数中增加时区的参数设置为上海时区
-Duser.timezone=Asia/Shanghai
(可左右滑动)
3.保存更改后,回到CM主页根据提示重启Hive相关服务
4.测试时区是否生效
1.使用HiveCLI查看Hive的当前时间
2.使用Beeline登录查询
通过如上测试可以看到Hive使用的是我们指定的上海时区,而非操作系统的时区。
5.总结
指定Hive时区时需要同时指定HiveServer2和Hive客户端的时区,否则通过HiveCLI和Beeline查询出来的时间显示不一致。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有