下面我将为你详细介绍在不同操作系统和工具下使用 LZO 解压文件的命令。

lzop 命令 (最常用、最直接)
lzop 是 LZO 压缩格式的标准工具,它创建的文件通常以 .lzo 或 .lzop 作为后缀,这是处理 LZO 文件最推荐的方式。
安装 lzop
在使用之前,请确保你的系统上已经安装了 lzop。
-
在 Debian / Ubuntu / Mint 上:
sudo apt-get update sudo apt-get install lzop
-
在 CentOS / RHEL / Fedora 上:
(图片来源网络,侵删)sudo yum install lzop # 或者对于较新版本 sudo dnf install lzop
-
在 macOS 上 (使用 Homebrew):
brew install lzop
解压命令
解压命令非常简单直接。
基本解压:
这会将 example.lzo 文件解压为 example 文件(不带 .lzo 后缀)。
lzop -d example.lzo
-d是--decompress的缩写,表示解压。
解压并指定输出文件名:
如果你想将解压后的文件保存为另一个名字,可以使用 -o 选项。

lzop -d example.lzo -o my_output_file.txt
标准输入解压: 这在编程脚本或管道中非常有用,从标准输入读取压缩数据,并解压到标准输出。
# 从另一个命令的输出中获取压缩数据,然后解压 cat example.lzo | lzop -dc
-c是--stdout的缩写,表示输出到标准输出。
解压并保留原压缩文件:
默认情况下,lzop 在成功解压后会删除原始的 .lzo 文件,如果你想保留它,可以使用 -k 选项。
lzop -dk example.lzo
-k是--keep的缩写。
lz4 命令
lz4 是另一个以速度著称的压缩算法,但它与 LZO 是不同的算法。lz4 工具包中包含了一个兼容 LZO 的工具 lz4c,可以用来解压 LZO 文件。
安装 lz4
-
在 Debian / Ubuntu / Mint 上:
sudo apt-get install lz4
-
在 CentOS / RHEL / Fedora 上:
sudo yum install lz4
解压命令
使用 lz4 解压 LZO 文件需要指定 -l 选项来表明是 LZO 格式。
lz4 -d example.lzo
或者明确指定 LZO 格式:
lz4 -d --format=lzo example.lzo
pigz 命令
pigz 是一个并行版本的 gzip,可以充分利用多核 CPU 进行解压,虽然它主要用于 gzip 和 pigz 格式,但也支持解压 LZO 文件。
安装 pigz
- 在 Debian / Ubuntu / Mint 上:
sudo apt-get install pigz
解压命令
使用 pigz 解压 LZO 文件非常简单,它会自动识别格式。
pigz -d example.lzo
-d表示解压。pigz会自动检测输入文件是 LZO、gzip 还是 pigz 格式,并进行相应的解压。
在 Hadoop/Spark 等大数据生态中解压
在 Hadoop 或 Spark 中处理 LZO 压缩的文本文件(如 .lzo 后缀的日志文件),你需要先安装 Hadoop LZO 库并配置好。
-
安装 Hadoop LZO 库:
- 下载
hadoop-lzo的源码或预编译包。 - 编译并打包成 JAR 文件(
hadoop-lzo-0.4.20.jar)。 - 将这个 JAR 文件分发到 Hadoop 集群的所有节点的
$HADOOP_HOME/lib目录下。
- 下载
-
配置
core-site.xml: 在 Hadoop 的配置文件core-site.xml中添加以下配置,让 Hadoop 能够识别.lzo后缀。<property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value> </property> <property> <name>io.compression.codec.lzo.class</name> <value>com.hadoop.compression.lzo.LzoCodec</value> </property> -
创建 LZO 索引文件: 为了支持 Hadoop 对 LZO 文件的“切片”(splitting),你必须为每个
.lzo文件创建一个索引文件.lzo.index。# 在集群的任意节点上执行,hadoop 命令需要配置好环境变量 hadoop jar /path/to/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.LzoIndexer /path/to/your/data/example.lzo
完成以上配置后,你就可以在 Spark 或 Hive 中像读取普通文本文件一样直接读取 LZO 压缩的文件了,Hadoop 会自动在后台进行解压。
Spark 示例:
# 假设 example.lzo 和 example.lzo.index 都在 HDFS 的 /data/ 目录下
df = spark.read.text("hdfs:///path/to/your/data/example.lzo")
总结与推荐
| 工具 | 命令 | 适用场景 | 备注 |
|---|---|---|---|
lzop |
lzop -d file.lzo |
通用、日常使用 | 最推荐,LZO 格式的官方工具,简单直接。 |
lz4 |
lz4 -d file.lzo |
lz4 用户,或需要跨工具支持 |
需要指定 -l 选项。 |
pigz |
pigz -d file.lzo |
多核服务器,追求解压速度 | 自动识别格式,速度可能更快。 |
| Hadoop | 配置后直接读取 | 大数据处理 (Hive, Spark, MapReduce) | 需要额外安装和配置 Hadoop LZO 库。 |
对于绝大多数 Linux/Unix 用户,直接使用 lzop -d your_file.lzo 是最简单、最标准的方法。
