溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何解決DataGrip連接HiveServer2報(bào)錯(cuò)的問(wèn)題

發(fā)布時(shí)間:2021-05-07 10:37:39 來(lái)源:億速云 閱讀:306 作者:小新 欄目:數(shù)據(jù)庫(kù)

這篇文章主要介紹如何解決DataGrip連接HiveServer2報(bào)錯(cuò)的問(wèn)題,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

DataGrip 連接 HiveServer2 報(bào)錯(cuò)

一、Heap memory

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

因?yàn)?DataGrip 會(huì)開(kāi)好幾個(gè) Session,我這里是 4 個(gè) Session

如何解決DataGrip連接HiveServer2報(bào)錯(cuò)的問(wèn)題

因此有時(shí)候如果執(zhí)行的語(yǔ)句過(guò)大,會(huì)造成堆內(nèi)存來(lái)不起回收。導(dǎo)致堆內(nèi)存溢出,反應(yīng)在 DataGrip 就是執(zhí)行語(yǔ)句卡住沒(méi)反應(yīng),等很久然后報(bào)錯(cuò)。這里有個(gè)超時(shí)時(shí)間,等很久就是超過(guò)這個(gè)超時(shí)時(shí)間后報(bào)錯(cuò)。

我們可以適當(dāng)調(diào)大 heap 內(nèi)存:

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

二、Too many open files

如何解決DataGrip連接HiveServer2報(bào)錯(cuò)的問(wèn)題

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

修改最大文件連接數(shù)量

  •  Linux 任何外部設(shè)備(socket、文件)都可以看做一個(gè)文件,而一個(gè)文件就可以通過(guò)一個(gè)文件描述符來(lái)讀寫(xiě)。

  • -n: file descriptors 4096 描述的就是一進(jìn)程可以打開(kāi)文件最大的數(shù)量

  • 默認(rèn)是1024,我們可以通過(guò)命令 ulimit -n 4096 把最大打開(kāi)文件調(diào)整到 4096,如果重啟會(huì)還原成默認(rèn)值

  • 永久設(shè)置方法

vim /etc/security/limits.conf 
在最后加入
* soft nofile 65535 
* hard nofile 65535

安裝 lsof

 sudo yum install lsof -y

查看當(dāng)前系統(tǒng)打開(kāi)的文件數(shù)量

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

查看某一進(jìn)程的打開(kāi)文件數(shù)量

# RunJar 就是 HiveServer2 的進(jìn)程
lsof -p pid | wc -l 
lsof -p 22627 | wc -l 
lsof -p 22889 | wc -l
lsof -p 23322 | wc -l

以上是“如何解決DataGrip連接HiveServer2報(bào)錯(cuò)的問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI