gpt4 book ai didi

java.lang.OutOfMemoryError : Java heap space at java. util.Arrays.copyOf(Arrays.java:3236)

转载 作者:可可西里 更新时间:2023-11-01 16:29:40 31 4
gpt4 key购买 nike

我在映射器类中遇到此错误。我正在使用将解压缩的 ZipFileInputFormat 读取大 zip 文件,并使用 ZipFileRecordReader 我正在将其转换为文件名和文件内容作为值的键。我必须使用我的分隔符拆分内容并将其插入到 HBase 表中。 zip 文件的大小非常大且不可拆分。我的代码适用于较小的 zip 文件,但是当我为巨大的 zip 文件运行它时,它会抛出此错误。这就是问题发生的地方。

 // Read the file contents
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] temp = new byte[8192];
while ( true )
{
int bytesRead = 0;
try
{
bytesRead = zip.read( temp, 0, 8192 );
}
catch ( EOFException e )
{
if ( ZipFileInputFormat.getLenient() == false )
throw e;
return false;
}
if ( bytesRead > 0 )
bos.write( temp, 0, bytesRead );
else
break;
}

我尝试将 8192 增加到某个较大的数字,但同样的错误。这就是我运行 mapreduce 的方式。 hadoop jar bulkupload-1.0-jar-with-dependencies.jar -Dmapreduce.map.memory.mb=8192 -Dmapreduce.map.java.opts=Xmx7372m FinancialLineItem FinancialLineItem sudarshan/output39

在我的映射器代码中,我遍历了文件的内容,然后将其拆分,然后插入到 HBase 中。

注意:文件非常大。

最佳答案

它只是意味着 JVM 内存不足。发生这种情况时,您基本上有 2 个选择:

-->使用-Xmx VM 参数允许JVM 使用更多内存。例如,允许 JVM 使用 1 GB (1024 MB) 的内存-->改进/修复应用程序,使其使用更少的内存

关于java.lang.OutOfMemoryError : Java heap space at java. util.Arrays.copyOf(Arrays.java:3236),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035258/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com