簡體   English   中英

Hive與Parquet文件中的內存問題

[英]Memory issues in Hive with Parquet files

我在Hadoop 2.6上運行Hive 1.2,並且在3個節點上加載了大小為21GB的鑲木地板表,該表存儲在HDFS中,復制因子為1。 我正在運行一個簡單的選擇查詢,該查詢不返回任何行(主要是為了衡量全表掃描的性能):

select * from myParquetTable where id < 0;

但是我一直從“ ParquetFileReader”(接近僅映射作業的末尾)獲取Java堆空間內存問題:

java.lang.OutOfMemoryError:parquet.hadoop.ParquetFileReader $ ConsecutiveChunkList.readAll(ParquetFileReader.java:755)位於parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:494)位於parquet.hadoop.InternalParquetRecordReader.checkRead()處的Java堆空間InternalParquetRecordReader.java:127)

雖然數據的總大小為21GB,但我在所有3個節點上總共有31.5GB的可用內存。 我只是想知道Parquet文件是否存在高內存消耗問題,是否需要大量內存來進行簡單/全面掃描,還是這里沒有其他東西。 (我對鑲木地板文件還很陌生,而我以前使用ORC格式以及在同一硬件上甚至更大的數據量的經驗也很成功)。

任何建議/提示將不勝感激。

您需要牢記兩件事:1.實木復合地板是基於柱狀的存儲。 2. Parquet文件被壓縮。

好了,鑒於這些要點,文件將比原始文件放氣后要占用更多的空間。 但是,您擁有的內存足以處理文件(在這種情況下為完整文件)。

既然如此,它會給您堆空間不足的內存錯誤-您可能希望增加節點管理器的Java堆大小。 另外,您可能要檢查每個容器配置了多少內存以及所有容器的總內存。

您可能要查看的另一個屬性是Hive客戶端的Java堆大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM