Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在hadoop中使用Snappy压缩和解压缩_Java_Hadoop_Snappy - Fatal编程技术网

Java 如何在hadoop中使用Snappy压缩和解压缩

Java 如何在hadoop中使用Snappy压缩和解压缩,java,hadoop,snappy,Java,Hadoop,Snappy,我使用以下代码进行压缩 Configuration conf = new Configuration(); conf.setBoolean("mapred.compress.map.output", true); conf.set("mapred.map.output.compression.codec","org.apache.hadoop.io.compress.SnappyCodec"); 使用snappy算法。但是,在压缩具有一些mb数据(70到100 mb)的输

我使用以下代码进行压缩

     Configuration conf = new Configuration(); 
    conf.setBoolean("mapred.compress.map.output", true); 
conf.set("mapred.map.output.compression.codec","org.apache.hadoop.io.compress.SnappyCodec");
使用snappy算法。但是,在压缩具有一些mb数据(70到100 mb)的输入文件时,它会压缩文件大小大于输入文件的数据,如果我尝试使用包含所有类型文件(如(.jpg、.mp3、.mp4等)的输入目录(大小为100到150 mb),它会显示错误:

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Java HotSpot(TM) Server VM warning: INFO: os::commit_memory(0x930c0000, 105119744, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 105119744 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/hduser/workspace/TestProject/hs_err_pid16619.log
由于我正在尝试使用snappy算法压缩和解压缩数据,请在这里建议我,如何使用sanppy算法以更少的空间压缩数据

我正在使用

Ubuntu 13.10,32位 Jdk 7 32位。
使用hadoop-2.2.0

您的本地计算机内存不足,请购买更多ram:p#Thomas,谢谢您的回复。我得到的压缩文件比输入文件大,因为我知道压缩后文件大小应该减小。正如您所建议的那样,将获得更多的RAM。您还应该尝试减少并行映射器/还原器的数量,或者在保留内存中使用。@ThomasJungblut,我找不到任何方法来减少映射器的数量,因为谷歌搜索的映射器数量取决于InputFormat,我们无法控制映射器的数量。。使用Snappy压缩.jpg、.mp3或.mp4文件没有意义,因为它们已经是压缩格式。