0

私は圧縮のために次のコードを使用しています

     Configuration conf = new Configuration(); 
    conf.setBoolean("mapred.compress.map.output", true); 
conf.set("mapred.map.output.compression.codec","org.apache.hadoop.io.compress.SnappyCodec");

スナッピーアルゴリズムを使用。しかし、入力ファイルを数メガバイトのデータ(70〜100メガバイト)で圧縮している間、入力ファイルよりも大きなファイルサイズでデータを圧縮します。すべてのタイプのファイルを含む入力ディレクトリで試してみると(.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 を使用

4

0 に答える 0