您好,登錄后才能下訂單哦!
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 # 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
修改最大文件連接數量
-n: file descriptors 4096
描述的就是一進程可以打開文件最大的數量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
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。