Hadoop在Linux上的数据压缩方法如下:
- 选择压缩格式:支持Gzip、Bzip2、LZO、Snappy、Zstandard等,需根据场景选择(如Gzip压缩率高但不支持split,LZO支持split但需安装)。
- 安装压缩工具:部分格式(如LZO、Snappy)需手动安装对应工具包(如
libsnappy-dev)。 - 配置Hadoop参数:
- 在
core-site.xml中添加压缩编解码器,如io.compression.codecs=org.apache.hadoop.io.compress.SnappyCodec。 - 在
mapred-site.xml中设置Map/Reduce输出压缩参数,如mapreduce.map.output.compress=true。
- 在
- 使用命令行工具:
- 上传压缩文件到HDFS:
hadoop fs -put localfile.gz /hdfs/path/。 - 解压缩文件:
hadoop fs -get /hdfs/path/file.gz /local/path/,再通过系统命令解压(如gunzip)。
- 上传压缩文件到HDFS:
- 在MapReduce/Hive中启用压缩:
- Map阶段:设置
mapreduce.map.output.compress=true及对应编解码器。 - Reduce阶段:设置
mapreduce.output.fileoutputformat.compress=true及压缩格式。 - Hive建表时指定压缩:如
STORED AS ORC TBLPROPERTIES ("orc.compress"="SNAPPY")。
- Map阶段:设置
注意:需确保集群所有节点安装对应压缩工具,且部分格式(如LZO)需建索引以支持split。