如何解决DataGrip连接HiveServer2报错的问题

54次阅读
没有评论

共计 1617 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

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

DataGrip 连接 HiveServer2 报错

一、Heap memory

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

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

如何解决 DataGrip 连接 HiveServer2 报错的问题

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

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

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

二、Too many open files

如何解决 DataGrip 连接 HiveServer2 报错的问题

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 报错的问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1617字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)