hive-3.1.2启动的时候,默认申请的JVM堆内存大小为256M,JVM堆内存申请太小,导致执行复杂的sql时经常会报错(如下图所示):java.lang.OutOfMemoryError: GC overhead limit exceeded,然后HiveServer2服务就异常了,因此最好调整一下HADOOP_HEAPSIZE这个参数。
解决方案:
进入hive下的conf目录,先把“hive-env.sh.template”拷贝一下,或者“mv”重命名
[hanxiao@hadoop102 conf]$ cp hive-env.sh.template hive-env.sh
然后vim命令修改“hive-env.sh”
[hanxiao@hadoop102 conf]$ vim hive-env.sh
输入“:set nu
”显示行号,去掉第40行的“#”号(就可以把HADOOP_HEAPSIZE改为1024)
export HADOOP_HEAPSIZE=1024
输入“:wq
”退出,重启Metastore服务和HiveServer2服务就可以解决。