6、hadoop上命令行查看lzo、gz、bz文件

hadoop上命令行查看lzo、gz、bz文件

 发表于 2019-03-25 |  分类于 hadoop |  |  游览 806

hadoop上命令行查看lzo、gz、bz文件

HDFS上的文件可能是压缩的,所以用cat不能直接查看。hadoop上默认支持lzo、gz、bz2、snappy压缩格式。

我们用命令行查看HDFS上压缩文件,也是可以的。

lzo文件

  • 查看 HDFS 上 lzo 文件的命令
1
2
3
4
5
hadoop fs -cat /Data/Logs/2018-08-22/2018-08-22_log.lzo | lzop -dc | head -1

或

hadoop fs -cat /Data/Logs/2018-08-22/2018-08-22_log.lzo | lzop -dc | head -1     lzop 会接受输入流然后解压输出流给head显示第一行

gzip 文件

  • 查看 HDFS 上 gzip 文件的命令

1
2
3
4
5
hadoop fs -cat /shining/temp.txt.gz | gzip -d 

或

hadoop fs -cat /shining/temp.txt.gz | zcat

bz2 文件

  • 查看 HDFS 上 bz2 文件的命令
1
hadoop fs -cat /temp/b.bz2 | bzip2 -d

text 命令

Hadoop text 命令可以查看HDFS上的文本、压缩文件

1
2
3
4
5
6
7
hadoop fs -text /temp/b.bz2

hadoop fs -text /temp/test_hive.txt.gz

hadoop fs -text /temp/l.lzo

hadoop fs -text /tmp/out1/part-r-00000
<think>嗯,用户问的是Hadoop中的压缩命令。首先,我得确定Hadoop常用的压缩工具有哪些。记得Hadoop处理大文件,压缩可以减少存储和传输时间。常见的应该包括gzip、bzip2、LZO、Snappy这些。需要分别介绍它们的命令,压缩比,速度,以及是否支持分片。 然后,用户可能需要具体的使用方法,比如如何在命令行中使用这些工具压缩文件。比如gzip用gzip命令,bzip2用bzip2,LZO需要安装lzop,Snappy的话可能有不同的工具。需要指出每个工具对应的压缩和解压命令。 还要注意Hadoop本身是否支持这些格式,比如在MapReduce中如何处理。比如,Snappy和LZO支持分片,适合MapReduce,而gzip不支持分片,大文件处理可能有问题。这点很重要,用户可能在使用Hadoop处理压缩文件时需要知道兼容性和性能问题。 另外,用户可能想知道如何在Hadoop作业中指定压缩格式,比如设置mapreduce.output.fileoutputformat.compress.codec之类的配置项。可能需要提到在代码或配置文件中如何启用压缩。 可能还需要比较各个压缩工具的优缺点,帮助用户根据场景选择。比如高压缩比选bzip2,速度选Snappy或LZO。是否需要分片也是一个关键点。 最后,确保回答结构清晰,分点说明每个工具的命令、特点和使用建议。可能用户是刚开始用Hadoop,所以步骤要详细,避免术语过多,但又要准确。同时提醒他们注意Hadoop版本和依赖安装,比如LZO需要单独安装。</think>在Hadoop生态中,压缩是优化存储和计算性能的重要手段。以下是Hadoop常用压缩工具及相关命令的逐步解析: --- ### 一、Hadoop支持的常见压缩格式 | 格式 | 工具命令 | 扩展名 | 是否可分片 | 压缩比 | 速度 | Hadoop兼容性 | |--------|------------|---------|------------|--------|-------|---------------| | **Gzip** | `gzip` | `.gz` | 否 | 高 | 中等 | 原生支持 | | **Bzip2** | `bzip2` | `.bz2` | 是 | 最高 | 慢 | 原生支持 | | **LZO** | `lzop` | `.lzo` | 是(需索引)| 低 | 最快 | 需安装插件 | | **Snappy** | N/A | `.snappy` | 否 | 低 | 极快 | 原生支持 | --- ### 二、压缩/解压命令操作 #### 1. **Gzip** - **压缩文件** ```bash gzip filename # 生成filename.gz hadoop fs -put filename.gz /hdfs/path ``` - **解压文件** ```bash gunzip filename.gz # 或 gzip -d filename.gz ``` #### 2. **Bzip2** - **压缩文件** ```bash bzip2 filename # 生成filename.bz2 hadoop fs -put filename.bz2 /hdfs/path ``` - **解压文件** ```bash bunzip2 filename.bz2 # 或 bzip2 -d filename.bz2 ``` #### 3. **LZO**(需安装`hadoop-lzo`) - **压缩文件** ```bash lzop filename # 生成filename.lzo hadoop fs -put filename.lzo /hdfs/path ``` - **生成索引(支持分片)** ```bash hadoop jar hadoop-lzo.jar com.hadoop.compression.lzo.LzoIndexer /hdfs/path/filename.lzo ``` #### 4. **Snappy** - **HDFS直接压缩**(通过Java API) 需在MapReduce作业中配置: ```java conf.set("mapreduce.output.fileoutputformat.compress", "true"); conf.set("mapreduce.output.fileoutputformat.compress.codec", "org.apache.hadoop.io.compress.SnappyCodec"); ``` --- ### 三、关键注意事项 1. **分片能力** - Bzip2和带索引的LZO支持分片,适合MapReduce并行处理。 - Gzip/Snappy不可分片,大文件会降低计算并行度。 2. **性能权衡** - **高压缩比场景**:选择Bzip2(牺牲速度)。 - **低延迟场景**:选择Snappy/LZO(牺牲压缩比)。 3. **Hadoop配置** 在`core-site.xml`中指定默认编解码器: ```xml <property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,...</value> </property> ``` --- ### 四、验证压缩文件 ```bash hadoop fs -text /hdfs/path/file.gz # 自动解压并查看内容 hadoop checknative # 检查Hadoop支持的本地压缩 ``` 通过合理选择压缩格式和配置,可显著优化Hadoop的存储效率和计算性能。实际选择需根据数据规模、计算模式(如批处理/实时)和集群资源综合评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值