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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值