精华内容
下载资源
问答
  • 可以使用ffmpeg重新压缩,比如: ffmpeg -i origin.mp4 output.mp4 之后使用pr打开output即可。

    可以使用ffmpeg重新压缩,比如:

    ffmpeg -i origin.mp4  output.mp4
    

    之后使用pr打开output即可。

    展开全文
  • 文件压缩类型总结

    2013-08-20 16:02:26
    1.ZIP ZIP应该算是最常见的压缩文件格式了,你甚至需要单独为它安装一个压缩或者解压缩软件,因为我们使用的Windows系统以及集成...现在的大多数操作系统都会集成对ZIP文件的支持,而所有的压缩软件也都会提...
    1.ZIP 

    ZIP应该算是最常见的压缩文件格式了,你甚至不需要单独为它安装一个压缩或者解压缩软件,因为我们使用的Windows系统以及集成了对ZIP压缩格式的支持。

    经历过DOS时代的朋友可能还记得ARJ格式,它基本就是DOS时代ZIP,直到ZIP的出现,以更高的压缩效率取代了ARJ,成为了大家的首选。现在的大多数操作系统都会集成对ZIP文件的支持,而所有的压缩软件也都会提供对ZIP文件的支持,这些足以体现出ZIP格式的地位。

    ZIP时代最出名的压缩软件就要数WinZIP了,它几乎是当时每台电脑都必备的软件。直到Windows系统开始集成了对ZIP文件的支持,以及后起新秀RAR格式的出现,使得WinZIP不再是那么的必要,才让它逐渐退出了大家的视线。

    2. RAR

    虽然ZIP在压缩文件格式中地位很高,但现在相当多的下载网站都选择了用RAR格式来压缩他们的文件,最根本的原因就在于RAR格式的文件压缩率比ZIP更高。

    同样的文件使用RAR格式进行压缩后得到的大小通常都会比使用ZIP压缩后更小,而我们对文件进行压缩的主要目的就是要减小文件大小以便于网络传输,正巧RAR格式又出现在网络刚刚开始普及的时候,所以RAR逐渐取代ZIP的地位也就是情理之中的事了。

    对RAR文件进行压缩或者解压缩,首选的软件当然是WinRAR,与之前的WinZIP一样,它几乎也是现在每台电脑都必装的软件。不过需要提醒大家的是,作为商业软件,WinRAR只允许用户进行30天的免费试用,虽然过期后软件仍然能够正常工作,但就已经不再合法了。

    3.7Z

    作为压缩格式的后起新秀,7Z有着比RAR更高的压缩率,能够将文件压缩的更加小巧。不过因为RAR格式已经高度普及,又没有网络普及的“天时”相助,7Z想要取代RAR现在的地位还是相当不容易的。

    与之前两种格式一样,7Z也有着专门支持它的软件:7-zip。使用7-zip可以解压缩RAR格式的压缩文件,而WinRAR也同样可以解压缩7Z格式的压缩文件。

    大概因为直接使用现有的WinRAR就可以处理网络上下载到的7Z格式文件,而要将文件压缩成7Z格式的话却需要额外安装7-zip,所以也间接的妨碍了7Z格式的普及吧。WinZIP当年就是因为没有及时的提供对RAR格式的支持而被WinRAR钻了空子。

    4.CAB

    CAB是微软的一种安装文件压缩格式,主要应用于软件的安装程序中。因为涉及到安装程序,所以CAB文件中包含的文件通常都不是简单的直接压缩,而是对文件名等都进行了处理,所以虽然可以对其直接解压缩,但解压后得到的文件通常都无法直接使用。

    和ZIP一样,Windows系统自身就可以打开CAB格式的文件,而几乎所有压缩软件也都可以对CAB文件进行解压。

    5.ISO

    很多朋友都认为ISO是一种压缩格式,这源于WinRAR添加了对ISO格式“解压”的支持。而实际上,ISO并不是压缩格式,它之中所包含的文件也并没有经过压缩。ISO只是一种光盘的镜像格式,完全复制并保存了光盘上的内容而已。所谓的对ISO“解压”的过程,不过就是对ISO内文件的提取过程。

    最后,我还想再为大家单独介绍一个软件:WinMount。

    我们解压缩一个文件,就必然会多占用一些磁盘空间,因为磁盘上同时存在了压缩文件和解压后的文件。而WinMount的特点就是能够将压缩文件以类似虚拟光驱的方式挂接为一个虚拟磁盘供我们使用,因为所有的操作都是在内存中进行的,并没有实际执行任何的解压缩操作,所以不会占用额外的磁盘空间。这对于某些朋友来说,可能还是会很有些帮助的。

    然而在Linux下压缩又比较特别,Linux下有相当多的压缩命令,初学的我们开始总是摸不清头脑,我们知道在Linux下的后缀名是没有什么很特殊的意义的,不过,为了方便记忆,针对这些压缩命令所做出来的压缩文件,还是会有一些特殊的命名方式,Linux下常见的压缩文件有*.tar,
    *.tar.gz, *.tgz, *.gz, *.Z, *.bz2等。
    ---------------------------------------------------
    1. .tar
      解包: tar xvf FileName.tar
      打包:tar cvf FileName.tar DirName
      (注:tar是打包,不是压缩!)
      ---------------------------------------------
    2.  .gz
      解压1:gunzip FileName.gz
      解压2:gzip -d FileName.gz
      压缩:gzip FileName
      .tar.gz 和 .tgz
      解压:tar zxvf FileName.tar.gz
      压缩:tar zcvf FileName.tar.gz DirName
      ---------------------------------------------
    3.  .bz2
      解压1:bzip2 -d FileName.bz2
      解压2:bunzip2 FileName.bz2
      压缩: bzip2 -z FileName
      .tar.bz2
      解压:tar jxvf FileName.tar.bz2
      压缩:tar jcvf FileName.tar.bz2 DirName
      ---------------------------------------------
    4.  .bz
      解压1:bzip2 -d FileName.bz
      解压2:bunzip2 FileName.bz
      压缩:未知
      .tar.bz
      解压:tar jxvf FileName.tar.bz
      压缩:未知
      ---------------------------------------------
    5.  .Z
      解压:uncompress FileName.Z
      压缩:compress FileName
      .tar.Z
      解压:tar Zxvf FileName.tar.Z
      压缩:tar Zcvf FileName.tar.Z DirName
      ---------------------------------------------
    6.  .zip
      解压:unzip FileName.zip
      压缩:zip FileName.zip DirName
      ---------------------------------------------
    7.  .rar
      解压:rar a FileName.rar
      压缩:r ar e FileName.rar
      
      rar请到:http://www.rarsoft.com/download.htm 下载!
      解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
      # cp rar_static /usr/bin/rar
      ---------------------------------------------
    8.  .lha
      解压:lha -e FileName.lha
      压缩:lha -a FileName.lha FileName
      
      lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!
      >解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
      # cp lha /usr/bin/
      ---------------------------------------------
    9. .rpm
      解包:rpm2cpio FileName.rpm | cpio -div
      ---------------------------------------------
      .deb
      解包:ar p FileName.deb data.tar.gz | tar zxf -
    用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩。


    下面分别介绍备份与压缩的命令。
      
    1.  tar命令
      
     
     tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
    tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于
    备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。
      
      语法:tar [主选项+辅选项] 文件或者目录
      
      使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
      
      主选项:
      
      c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
      
      r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
      
      t 列出档案文件的内容,查看已经备份了哪些文件。
      
      u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
      
      x 从档案文件中释放文件。
      
      辅助选项:
      
      b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
      
      f 使用档案文件或设备,这个选项通常是必选的。
      
      k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
      
      m 在还原文件时,把所有文件的修改时间设定为现在。
      
      M 创建多卷的档案文件,以便在几个磁盘中存放。
      
      v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
      
      w 每一步都要求确认。
      
      z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
      
      例1:把/home目录下包括它的子目录全部做备份文件,备份文件名为usr.tar。
      
      $ tar cvf usr.tar /home
      
      例2:把/home目录下包括它的子目录全部做备份文件,并进行压缩,备份文件名为usr.tar.gz 。
      
      $ tar czvf usr.tar.gz /home
      
      例3:把usr.tar.gz这个备份文件还原并解压缩。
      
      $ tar xzvf usr.tar.gz
      
      例4:查看usr.tar备份文件的内容,并以分屏方式显示在显示器上。
      
      $ tar tvf usr.tar | more
      
      要将文件备份到一个特定的设备,只需把设备名作为备份文件名。
      
      例5:用户在/dev/fd0设备的软盘中创建一个备份文件,并将/home 目录中所有的文件都拷贝到备份文件中。
      
      $ tar cf /dev/fd0 /home
      
      要恢复设备磁盘中的文件,可使用xf选项:
      
      $ tar xf /dev/fd0
      
     
     如果用户备份的文件大小超过设备可用的存贮空间,如软盘,您可以创建一个多卷的tar备份文件。M选项指示tar命令提示您使用一个新的存贮设备,当使
    用M选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒您再放入一张新的软盘。这样您就可以把tar档案存入几张磁盘中。
      
      $ tar cMf /dev/fd0 /home
      
      要恢复几张盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令。在必要时您会被提醒放入另外一张软盘。
      
      $ tar xMf /dev/fd0
      
     2. gzip命令
      
      减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
      
      语法:gzip [选项] 压缩(解压缩)的文件名
      
      各选项的含义:
      
      -c 将输出写到标准输出上,并保留原有文件。
      
      -d 将压缩文件解压。
      
      -l 对每个压缩文件,显示下列字段:
      
      压缩文件的大小
      
      未压缩文件的大小
      
      压缩比
      
      未压缩文件的名字
      
      -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
      
      -t 测试,检查压缩文件是否完整。
      
      -v 对每一个压缩和解压的文件,显示文件名和压缩比。
      
      -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
      
      假设一个目录/home下有文件mm.txt、sort.txt、xx.com。
      
      例1:把/home目录下的每个文件压缩成.gz文件。
      
      $ cd /home
      
      $ gzip *
      
      $ ls
      
      m.txt.gz sort.txt.gz xx.com.gz
      
      例2:把例1中每个压缩的文件解压,并列出详细的信息。
      
      $ gzip -dv *
      
      mm.txt.gz 43.1%-----replaced with mm.txt
      
      sort.txt.gz 43.1%-----replaced with sort.txt
      
      xx.com.gz 43.1%-----replaced with xx.com
      
      $ ls
      
      mm.txt sort.txt xx.com
      
      例3:详细显示例1中每个压缩的文件的信息,并不解压。
      
      $ gzip -l *
      
      compressed uncompr. ratio uncompressed_name
      
      277 445 43.1% mm.txt
      
      278 445 43.1% sort.txt
      
      277 445 43.1% xx.com
      
      $ ls
      
      mm.txt.gz sort.txt.gz xx.com.gz
      
      例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz
      
      $ gzip usr.tar
      
      $ ls
      
      usr.tar.gz
      
    3.  unzip命令
      
      用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。
      
      语法:unzip [选项] 压缩文件名.zip
      
      各选项的含义分别为:
      
      -x 文件列表 解压缩文件,但不包括指定的file文件。
      
      -v 查看压缩文件目录,但不解压。
      
      -t 测试文件有无损坏,但不解压。
      
      -d 目录 把压缩文件解到指定目录下。
      
      -z 只显示压缩文件的注解。
      
      -n 不覆盖已经存在的文件。
      
      -o 覆盖已存在的文件且不要求用户确认。
      
      -j 不重建文档的目录结构,把所有文件解压到同一目录下。
      
      例1:将压缩文件text.zip在当前目录下解压缩。
      
      $ unzip text.zip
      
      例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
      
      $ unzip -n text.zip -d /tmp
      
      例3:查看压缩文件目录,但不解压。
      
      $ unzip -v text.zip
      
    展开全文
  • 概述 只要是配置了正确的文件类型和压缩类型(比如Textfile+Gzip、SequenceFile+Snappy等),Hive都可以按预期...所以对于SequenceFile文件的压缩,并是先生成SequenceFile文件,再对文件进行压缩。而是生成Seque...

    概述

    只要是配置了正确的文件类型和压缩类型(比如Textfile+Gzip、SequenceFile+Snappy等),Hive都可以按预期读取并解析数据,提供SQL功能。

    SequenceFile本身的结构已经设计了内容进行压缩。所以对于SequenceFile文件的压缩,并不是先生成SequenceFile文件,再对文件进行压缩。而是生成SequenceFile文件时,对其中的内容字段进行压缩。最终压缩后,对外仍体现为一个SequenceFile。

    RCFile、ORCFile、Parquet、Avro对于压缩的处理方式与SequenceFile相同。

    文件格式

    1. Textfile
    2. SequenceFile
    3. RCFile
    4. ORCFile
    5. Parquet
    6. Avro

    压缩算法的编解码器

    TEXTFILE

    
    
    1. --创建一个表,格式为文本文件: 
    2. CREATE EXTERNAL TABLE student_text (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED  
    4.     FIELDS TERMINATED BY ','  
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --导入数据到此表中,将启动MR任务 
    8. INSERT OVERWRITE TABLE student_text SELECT * FROM student; 

    可查看到生成的数据文件的格式为非压缩的文本文件:

    
    
    1. hdfs dfs -cat /user/hive/warehouse/student_text/000000_0 
    2.  
    3. 1001810081,cheyo 
    4. 1001810082,pku 
    5. 1001810083,rocky 
    6. 1001810084,stephen 
    7. 2002820081,sql 
    8. 2002820082,hello 
    9. 2002820083,hijj 
    10. 3001810081,hhhhhhh 
    11. 3001810082,abbbbbb 

    文本文件,DEFLATE压缩

    
    
    1. --创建一个表,格式为文件文件: 
    2. CREATE TABLE student_text_def (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --设置压缩类型为Gzip压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.DefaultCodec;  
    11. --导入数据: 
    12. INSERT OVERWRITE TABLE student_text_def SELECT * FROM student; 
    13. --查看数据 
    14. SELECT * FROM student_text_def; 

    查看数据文件,可看到数据文件为多个.deflate文件。

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_text_def/ 
    2. -rw-r--r--   2015-09-16 12:48 /user/hive/warehouse/student_text_def/000000_0.deflate 
    3. -rw-r--r--   2015-09-16 12:48 /user/hive/warehouse/student_text_def/000001_0.deflate 
    4. -rw-r--r--   2015-09-16 12:48 /user/hive/warehouse/student_text_def/000002_0.deflate 

    文本文件,Gzip压缩

    
    
    1. --创建一个表,格式为文件文件: 
    2. CREATE TABLE student_text_gzip (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --设置压缩类型为Gzip压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec; 
    11. --导入数据: 
    12. INSERT OVERWRITE TABLE student_text_gzip SELECT * FROM student; 
    13. --查看数据 
    14. SELECT * FROM student_text_gzip; 

    查看数据文件,可看到数据文件为多个.gz文件。解开.gz文件,可以看到明文文本:

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_text_gzip/ 
    2. -rw-r--r--  2015-09-15 10:03 /user/hive/warehouse/student_text_gzip/000000_0.gz 
    3. -rw-r--r--  2015-09-15 10:03 /user/hive/warehouse/student_text_gzip/000001_0.gz 
    4. -rw-r--r--  2015-09-15 10:03 /user/hive/warehouse/student_text_gzip/000002_0.gz 

    文本文件,Bzip2压缩

    
    
    1. --创建一个表,格式为文件文件: 
    2. CREATE TABLE student_text_bzip2 (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --设置压缩类型为Bzip2压缩: 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.BZip2Codec; 
    11. --导入数据 
    12. INSERT OVERWRITE TABLE student_text_bzip2 SELECT * FROM student; 
    13. --查看数据: 
    14. SELECT * FROM student_text_bzip2; 

    查看数据文件,可看到数据文件为多个.bz2文件。解开.bz2文件,可以看到明文文本:

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_text_bzip2 
    2. -rw-r--r--  2015-09-15 10:09 /user/hive/warehouse/student_text_bzip2/000000_0.bz2 
    3. -rw-r--r--  2015-09-15 10:09 /user/hive/warehouse/student_text_bzip2/000001_0.bz2 
    4. -rw-r--r--  2015-09-15 10:09 /user/hive/warehouse/student_text_bzip2/000002_0.bz2 

    文本文件,lzo压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_text_lzo (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --设置为LZO压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec; 
    11. --导入数据 
    12. INSERT OVERWRITE TABLE student_text_lzo SELECT * FROM student; 
    13. --查询数据 
    14. SELECT * FROM student_text_lzo; 

    查看数据文件,可看到数据文件为多个.lzo压缩。解开.lzo文件,可以看到明文文本。

    未实测,需要安装lzop库

    文本文件,lz4压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_text_lz4 (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --设置为LZ4压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.Lz4Codec; 
    11. --导入数据 
    12. INSERT OVERWRITE TABLE student_text_lz4 SELECT * FROM student; 

    查看数据文件,可看到数据文件为多个.lz4压缩。使用cat查看.lz4文件,可以看到是压缩后的文本。

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_text_lz4 
    2. -rw-r--r-- 2015-09-16 12:06 /user/hive/warehouse/student_text_lz4/000000_0.lz4 
    3. -rw-r--r-- 2015-09-16 12:06 /user/hive/warehouse/student_text_lz4/000001_0.lz4 
    4. -rw-r--r-- 2015-09-16 12:06 /user/hive/warehouse/student_text_lz4/000002_0.lz4 

    文本文件,Snappy压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_text_snappy (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS TEXTFILE; 
    7. --设置压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.compress.map.output=true
    10. SET mapred.output.compress=true
    11. SET mapred.output.compression=org.apache.hadoop.io.compress.SnappyCodec; 
    12. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec; 
    13. SET io.compression.codecs=org.apache.hadoop.io.compress.SnappyCodec; 
    14. --导入数据 
    15. INSERT OVERWRITE TABLE student_text_snappy SELECT * FROM student; 
    16. --查询数据 
    17. SELECT * FROM student_text_snappy; 

    查看数据文件,可看到数据文件为多个.snappy压缩文件。使用cat查看.snappy文件,可以看到是压缩后的文本:

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_text_snappy 
    2. Found 3 items 
    3. -rw-r--r--   2015-09-15 16:42 /user/hive/warehouse/student_text_snappy/000000_0.snappy 
    4. -rw-r--r--   2015-09-15 16:42 /user/hive/warehouse/student_text_snappy/000001_0.snappy 
    5. -rw-r--r--   2015-09-15 16:42 /user/hive/warehouse/student_text_snappy/000002_0.snappy 

    SEQUENCEFILE

    Sequence文件,DEFLATE压缩

    
    
    1. --创建一个表,格式为文件文件: 
    2. CREATE TABLE student_seq_def (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS SEQUENCEFILE; 
    7. --设置压缩类型为Gzip压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.DefaultCodec;  
    11. --导入数据: 
    12. INSERT OVERWRITE TABLE student_seq_def SELECT * FROM student; 
    13. --查看数据 
    14. SELECT * FROM student_seq_def; 

    查看数据文件,是一个密文的文件.

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_seq_def/ 
    2. -rw-r--r--  /user/hive/warehouse/student_seq_def/000000_0 

    Sequence文件,Gzip压缩

    
    
    1. --创建一个表,格式为文件文件: 
    2. CREATE TABLE student_seq_gzip (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS SEQUENCEFILE; 
    7. --设置压缩类型为Gzip压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec; 
    11. --导入数据: 
    12. INSERT OVERWRITE TABLE student_seq_gzip SELECT * FROM student; 
    13. --查看数据 
    14. SELECT * FROM student_seq_gzip; 

    查看数据文件,是一个密文的文件,无法通过gzip解压:

    
    
    1. hdfs dfs -ls /user/hive/warehouse/student_seq_gzip/ 
    2. -rw-r--r--  /user/hive/warehouse/student_seq_gzip/000000_0 

    RCFILE

    RCFILE,Gzip压缩

    
    
    1. CREATE TABLE student_rcfile_gzip (id STRING, name STRING) 
    2. ROW FORMAT DELIMITED 
    3.     FIELDS TERMINATED BY ',' 
    4.     LINES TERMINATED BY '\n' 
    5. STORED AS RCFILE; 
    6.  
    7. --设置压缩类型为Gzip压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.output.compress=true
    10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec; 
    11. --导入数据: 
    12. INSERT OVERWRITE TABLE student_rcfile_gzip SELECT id,name FROM student; 
    13. --查看数据 
    14. SELECT * FROM student_rcfile_gzip; 

    ORCFile

    ORCFile有自己的参数设置压缩格式,一般不使用上述Hive参数设置压缩参数。

    ORCFile,ZLIB压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_orcfile_zlib (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS ORCFILE TBLPROPERTIES ("orc.compress"="ZLIB"); 
    7.  
    8. --导入数据 
    9. INSERT OVERWRITE TABLE student_orcfile_zlib SELECT id,name FROM student; 
    10. --查询数据 
    11. SELECT * FROM student_orcfile_zlib; 

    ORCFILE,Snappy压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_orcfile_snappy2 (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS ORCFILE TBLPROPERTIES ("orc.compress"="SNAPPY"); 
    7.  
    8. --导入数据 
    9. INSERT OVERWRITE TABLE student_orcfile_snappy2 SELECT id,name FROM student; 
    10. --查询数据 
    11. SELECT * FROM student_orcfile_snappy2; 

    一般不使用下述方式。下述方式压缩后,结果与上述同类型压缩(SNAPPY)不同。具体原因待进一步研究。

    
    
    1. --创建表 
    2. CREATE TABLE student_orcfile_snappy (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS ORCFILE; 
    7. --设置压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.compress.map.output=true
    10. SET mapred.output.compress=true
    11. SET mapred.output.compression=org.apache.hadoop.io.compress.SnappyCodec; 
    12. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec; 
    13. SET io.compression.codecs=org.apache.hadoop.io.compress.SnappyCodec; 
    14. --导入数据 
    15. INSERT OVERWRITE TABLE student_orcfile_snappy SELECT id,name FROM student; 
    16. --查询数据 
    17. SELECT * FROM student_orcfile_snappy; 

    Parquet

    Parquet,Snappy压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_parquet_snappy (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS PARQUET; 
    7. --设置压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.compress.map.output=true
    10. SET mapred.output.compress=true
    11. SET mapred.output.compression=org.apache.hadoop.io.compress.SnappyCodec; 
    12. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec; 
    13. SET io.compression.codecs=org.apache.hadoop.io.compress.SnappyCodec; 
    14. --导入数据 
    15. INSERT OVERWRITE TABLE student_parquet_snappy SELECT id,name FROM student; 
    16. --查询数据 
    17. SELECT * FROM student_parquet_snappy; 

    Avro

    Avro,Snappy压缩

    
    
    1. --创建表 
    2. CREATE TABLE student_avro_snappy (id STRING, name STRING) 
    3. ROW FORMAT DELIMITED 
    4.     FIELDS TERMINATED BY ',' 
    5.     LINES TERMINATED BY '\n' 
    6. STORED AS AVRO; 
    7. --设置压缩 
    8. SET hive.exec.compress.output=true
    9. SET mapred.compress.map.output=true
    10. SET mapred.output.compress=true
    11. SET mapred.output.compression=org.apache.hadoop.io.compress.SnappyCodec; 
    12. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec; 
    13. SET io.compression.codecs=org.apache.hadoop.io.compress.SnappyCodec; 
    14. --导入数据 
    15. INSERT OVERWRITE TABLE student_avro_snappy SELECT id,name FROM student; 
    16. --查询数据 
    17. SELECT * FROM student_avro_snappy; 


    本文作者:hulubo

    来源:51CTO

    展开全文
  • 网上要么没有,要么方法都是不对。... #判断为脚本文件还是py2exe编译后的文件,如果是脚本文件,则返回是脚本目录,如果是py2exe编译后的文件,则返回是编译后的文件路径 if os.path.isdir(path): .
    网上要么没有,要么方法都是不对的。
    直接上代码,应该注释挺清楚了,不多说了^_^
    
    import os
    import sys
    import zipfile
    
    #获取脚本路径, 如果是在IDE下运行,只能用此方式获取
    def get_cur_dir():
        path = sys.path[0]
        #判断为脚本文件还是py2exe编译后的文件,如果是脚本文件,则返回的是脚本的目录,如果是py2exe编译后的文件,则返回的是编译后的文件路径
        if os.path.isdir(path):
            return path
    
        elif os.path.isfile(path):
            return os.path.dirname(path)
    
    def recurse_files(input_path, result):
        files = os.listdir(input_path)
    
        for file in files:
            if os.path.isdir(os.path.join(input_path,file)):
                if file != 'users': #过滤文件夹
                    recurse_files(os.path.join(input_path,file), result)
            else:
                ext = os.path.splitext(file)[1]
                if input_path == cur_dir:#根目录只添加特定类型文件
                    if ext == '.dll' or ext == '.exe' or ext == '.qm':
                        result.append(os.path.join(input_path,file))
                else:
                    result.append(os.path.join(input_path,file))
    
    if __name__ == '__main__':
        cur_dir = get_cur_dir()
    
        zip_file_name = os.path.join(cur_dir, 'debug.zip');
        if os.path.isfile(zip_file_name): os.remove(zip_file_name)
        zip = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)
    
        filelists = []
        recurse_files(cur_dir, filelists)
    
        for file in filelists:
            arcName = file #在压缩包内名字
            if os.path.dirname(file) == cur_dir:
                arcName = os.path.basename(file) #文件在要压缩目录下,则只为文件名
            else:
                dir = os.path.dirname(file)
                dir = dir.replace(cur_dir + '\\', '') #只从要压缩的目录下当前目录名开始
                arcName = dir + '\\' + os.path.basename(file)
    
            zip.write(file, arcName)
            #zip.write(file) #会出现全路径
    
        # 调用了close方法才会保证完成压缩
        zip.close()
            
    
        
    
    展开全文
  • 概述只要是配置了正确的文件类型和压缩类型(比如Textfile+Gzip、...所以对于SequenceFile文件的压缩,并是先生成SequenceFile文件,再对文件进行压缩。而是生成SequenceFile文件时,对其中的内容字段进行压缩。最...
  • Hive支持的文件格式与压缩算法(1.2.1)

    千次阅读 2016-11-09 10:43:39
    概述 只要是配置了正确的文件类型和压缩类型(比如Textfile+Gzip、...所以对于SequenceFile文件的压缩,并是先生成SequenceFile文件,再对文件进行压缩。而是生成SequenceFile文件时,对其中的内容字段进行
  • wordpress添加自定义上传附件类型添加rar支持 在wp-includes/functions.php文件中查找application/zip,在“// ...方法1:使用winrar压缩的时候“压缩文件格式”选择为zip。 方法2:直接禁用文件类型检测,在w...
  • 1、引言通过参考相关博客对hdf5格式简要介绍。hdf5在存储的是支持压缩,使用的方式是blosc,... 同时发现hdf读取文件的时候只能是一次写,写的时候可以append,可以put,但是写完成了之后关闭文件,就能再写了, ...
  • 不支持split 应用场景 Map到Reduce中间数据压缩处理 Bzip2 优缺点 优点 超高压缩率 支持split 缺点 压缩速度慢 应用场景 数据用较少情况 Lzo 优缺点 优点 压缩率和压缩速度适宜 支持split 缺点 非hadoop...
  • 目标:完成所有文件类型的压缩、解压缩 时间:2018-6-1到2018-6-7 项目成员: 项目经理:唐僧 产品经理:孙悟空 开发:猪八戒 测试:沙和尚 需求分析 文件类型支持所有的文件 压缩文件个数:最多压缩100个文件 ...
  • 比如电脑里现有的解压缩软件给力,能解压缩某种类型的压缩文件等。知道屏幕前有没有人和我一样,比起下载软件,更喜欢直接用在线工具解决遇到的问题。比如下载可以在线设置尺寸的图片素材,在线处理图片或视频...
  • 7za仅仅支持.7z压缩格式,还支持.tar.bz2等压缩类型的.用-t指定:-t7z centos安装 yum install p7zip 案例1:压缩test文件夹生成test.7z 7za a -t7z -r test.7z test #a 代表添加文件/文件夹到压缩包 -t 是指定...
  • 引起这错误的原因是压缩文件的方式与WINDCHILL的默认方式一致,这时怎么办呢,当在导入模板时,看到windchill支持导入jar格式的压缩包. 于是,我用jar命令把此文件夹压缩成jar包,命令如下: jar -cvf 项目模板.
  • 完成所有类型文件的压缩和解压缩 三.需求分析 功能需求: 文件类型:支持所有文件 压缩文件个数:最多压缩100个文件 压缩大小:超过5G 性能需求: 压缩,解压缩文件超过30分钟 安全需求: 带有病毒的文件能...
  • 压缩加密文件工具类

    2020-08-26 11:22:23
    3 压缩和解压不同文件类型可通用,但解压不同文件类型读取内容写法略有不同。 zipUtil.java package zipTest; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import ...
  • 为您提供文件批量压缩工具 File Optimizer下载,File Optimizer是一款非常好用的文件批量压缩工具,通过使用这款软件,你能在修改文件其他内容前提下轻松地做到批量压缩、优化多种类型的文件,能够支持AIR, APK,...
  • 稍有不足是上传到云盘的压缩文件不能直接解压,针对此问题 解决思路 远程登陆主机后通过Linux文件解压缩命令解压文件即可(本人使用的是putty远程登陆工具) 具体操作流程 1. 将需要上传的文件压缩成zip、rar等Linux...
  • Ubuntu下破暴力解压缩文件zip密码

    万次阅读 2018-04-20 10:06:50
    用Ubuntu下的frackzip工具破解zip的密码,注意此处只能破解zip的密码,对于rar、7z等类型的压缩文件暂时不支持破解。 步骤如下:1.右键Ubuntu桌面,打开终端2.在终端中输入sudoapt-get install fcrackzip的命令安装...
  • 文件查找和压缩

    2019-01-02 19:49:46
    文件查找:find -name “文件名”(支持通配符)(iname区分大小写) -regex "PATTEN" -type TYPE文件类型 -size [+|-]UNIT按文件大小 -atime [+|-]# 按时间-perm[/|-]数字权限(/模糊查找,只要某一位符合。...
  • 7-Zip是一款号称有着现今最高压缩比的压缩软件,它不仅支持...win2003的IIS6默认是不支持7z的,需要手工添加 在IIS里所需要的站点—属性—HTTP头—MIME类型–添加如下内容 扩展名:.7z(注意前面有个点) MIME类型:a
  • 功能需求: 文件类型支持所有的文件 压缩文件个数:最多压缩100个文件 压缩大小:超过5G 性能需求: 压 缩、解压缩文件不超过30分钟 安全需求: 带有病毒感染的文件不压缩 易用性需求 操作简单、方便 界面...
  • Android 压缩解压zip文件

    千次阅读 2018-12-01 07:38:36
    对于zip压缩包内包含中文目录或者中文文件的话,参考网上的资源: “使用apache的zip工具包(所在包为ant.jar )代替JDK的zip工具包,因为java类型自带的不支持中文路径,不过两者使用的方式是一样的,只是apache压缩...
  • Enigma virtual box 是免费的软件虚拟化工具,它可以将多个文件封装到您的应用程序主文件,这样您的软件就可以制作成为单文件的绿色软件。 enigma virtual box 支持所有类型的文件格式,包括动态链接库 (.dll), ...
  • .文件格式文件格式按面向的存储形式不同,分为面向行和面向列两大类文件格式。面向行、列类型 类型名称是否可切割计算...支持行和块的压缩本地查看方便,小文件合并成KV格式后不易查看内部数据生产环境使用map输...
  • 压缩前提表压缩能提升性能,减少存储空间,主要是用在字符类型比较大表上(VARCHAR,VARBINARY和BLOB和TEXT类型),且读多写少情况下,如果你应用是io密集型,不是cpu密集型,那么压缩会带来很多性能提升...
  •  ASPX文件上传并限制文件类型ASP.NET源码实例,上传程序将上传文件类型限制为".jpg", ".gif", ".bmp", ".jpeg"四种类型,除此这外任何类型,都将提示“该文件类型不允许上传”。  作者寄语:貌似在codefans没...
  • 一小组工具可将捕获数据包中数据包转换(h =哈希,c =捕获,转换并计算候选,x =不同哈希类型),以便与最新哈希猫或开膛手约翰一起使用。 这些工具与hashcat和开膛手John都100%兼容,并由hashcat推荐。 该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 779
精华内容 311
关键字:

文件的压缩类型不支持