这篇文章主要介绍如何解决DataGrip连接HiveServer2报错的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

DataGrip 连接 HiveServer2 报错

一、Heap memory

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

因为 DataGrip 会开好几个 Session,我这里是 4 个 Session

因此有时候如果执行的语句过大,会造成堆内存来不起回收。导致堆内存溢出,反应在 DataGrip 就是执行语句卡住没反应,等很久然后报错。这里有个超时时间,等很久就是超过这个超时时间后报错。

我们可以适当调大 heap 内存:

#在hive/bin目录下的hive-config.sh,最后一行就是设置heap的大小。69#Defaulttouse256MB70exportHADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-2048}

二、Too many open files

lzq@hadoop102~ulimit-a-t:cputime(seconds)unlimited-f:filesize(blocks)unlimited-d:datasegsize(kbytes)unlimited-s:stacksize(kbytes)8192-c:corefilesize(blocks)0-m:residentsetsize(kbytes)unlimited-u:processes10000-n:filedescriptors4096-l:locked-in-memorysize(kbytes)64-v:addressspace(kbytes)unlimited-x:filelocksunlimited-i:pendingsignals31830-q:bytesinPOSIXmsgqueues819200-e:maxnice0-r:maxrtpriority0-N15:unlimited

修改最大文件连接数量

Linux 任何外部设备(socket、文件)都可以看做一个文件,而一个文件就可以通过一个文件描述符来读写。

-n: file descriptors 4096 描述的就是一进程可以打开文件最大的数量

默认是1024,我们可以通过命令 ulimit -n 4096 把最大打开文件调整到 4096,如果重启会还原成默认值

永久设置方法

vim/etc/security/limits.conf在最后加入*softnofile65535*hardnofile65535

安装 lsof

sudoyuminstalllsof-y

查看当前系统打开的文件数量

lsof|wc-lwatch"lsof|wc-l"

lzq@hadoop102~jps25696Jps1522NameNode22627RunJar1716DataNode3140Kafka2309NodeManager2647QuorumPeerMain22889RunJar23322RunJar

查看某一进程的打开文件数量

#RunJar就是HiveServer2的进程lsof-ppid|wc-llsof-p22627|wc-llsof-p22889|wc-llsof-p23322|wc-l

以上是“如何解决DataGrip连接HiveServer2报错的问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!