您现在的位置是:网站首页> 编程资料编程资料

DataGrip 连接 HiveServer2 报错的问题_数据库其它_

2023-05-27 682人已围观

简介 DataGrip 连接 HiveServer2 报错的问题_数据库其它_

DataGrip 连接 HiveServer2 报错

一、Heap memory

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

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

Hive打开的Session

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

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

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

二、Too many open files

在这里插入图片描述

 lzq@hadoop102 ~ ulimit -a -t: cpu time (seconds) unlimited -f: file size (blocks) unlimited -d: data seg size (kbytes) unlimited -s: stack size (kbytes) 8192 -c: core file size (blocks) 0 -m: resident set size (kbytes) unlimited -u: processes 10000 -n: file descriptors 4096 -l: locked-in-memory size (kbytes) 64 -v: address space (kbytes) unlimited -x: file locks unlimited -i: pending signals 31830 -q: bytes in POSIX msg queues 819200 -e: max nice 0 -r: max rt priority 0 -N 15: unlimited

修改最大文件连接数量

  •  Linux 任何外部设备(socket、文件)都可以看做一个文件,而一个文件就可以通过一个文件描述符来读写。
  • -n: file descriptors 4096 描述的就是一进程可以打开文件最大的数量
  • 默认是1024,我们可以通过命令 ulimit -n 4096 把最大打开文件调整到 4096,如果重启会还原成默认值
  • 永久设置方法
 vim /etc/security/limits.conf 在最后加入 * soft nofile 65535 * hard nofile 65535 

安装 lsof

 sudo yum install lsof -y

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

 lsof | wc -l watch "lsof | wc -l" 
 lzq@hadoop102 ~ jps 25696 Jps 1522 NameNode 22627 RunJar 1716 DataNode 3140 Kafka 2309 NodeManager 2647 QuorumPeerMain 22889 RunJar 23322 RunJar

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

 # RunJar 就是 HiveServer2 的进程 lsof -p pid | wc -l lsof -p 22627 | wc -l lsof -p 22889 | wc -l lsof -p 23322 | wc -l

到此这篇关于DataGrip 连接 HiveServer2 报错的文章就介绍到这了,更多相关DataGrip 连接 HiveServer2 报错内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:

-六神源码网