HDFS文件格式

file_format:
  TEXTFILE    默认格式
  RCFILE     hive 0.6.0 和以后的版本
  ORC       hive 0.11.0 和以后的版本
  PARQUET     hive 0.13.0 和以后的版本,该数据格式企业中最常用
  AVRO      hive 0.14.0 和以后的版本

数据存储的方式

1. 按行存储 textfile
2. 按列存储 orc/parqurt
  --orcfile
    每列数据有类似于元数据的索引信息,可以确定列内容,需要某列信息时可以直接锁定列内容,效率优于按行存储
    压缩出来的文件比例最小,以时间换存储
  --parquet
    比较复杂,支持嵌套数据结构和高效其种类丰富的算法(以应对不同值分布特征的压缩)
    压缩率不如orcfile,时间与压缩比适中
  压缩率
  TEXTFILE(不压缩) RCFILE(14%) parquet(62%) orcfile(78%) 其中ORCFILE是RCFILE一个升级

常见的压缩技术

1. 压缩格式: bzip2,gzip,lzo,lz4,snappy等
2. 压缩比: bzip2>gzip>lzo bzip2最节省存储空间
3. 解压速度: lzo>gzip>bzip2 lzo解压速度最快
4. mapreduce
    --> input --> map --> shuffle --> reduce --> output
      --> shuffle
        --> map shuffle
          --> spill
          --> partition: 决定map的输出交给那个reduce处理
          --> sort: 两种方式,WritableComparable/Comparable
          --> combiner: map端的reduce
          --> 压缩
        --> reduece shuffle
          -->merger
          --> 分组: 将相同key的value进行合并
5. hadoop中的压缩
  --> 减少网络IO
  --> 减少了磁盘IO存储
  --> 注意压缩必须有可分割性(在map输出经过shuffle到reduce时需要解压缩,保证单个数据还可以被解压)
  --> hadoop支持的压缩格式:zlib/gzip/bzip2/lzo/lz4/snappy
6. hadoop中编译snappy压缩
  --> Linux安装snappy库
  --> 下载hadoop-snappy-master.zip 编译生成支持hadoop的snappy.so
  --> 将生成的jar包放到hadoop目录下的lib
  --> 添加配置文件
  core-site.xml
    <property>
      <name>io.compression.codecs</name>
      <value>
        org.apache.hadoop.io.compress.GzipCodec,
        org.apache.hadoop.io.compress.DefaultCodec,
        org.apache.hadoop.io.compress.BZip2Codec,
        org.apache.hadoop.io.compress.SnappyCodec
      </value>
    </property>

Hadoop_常用存储与压缩格式的更多相关文章

  1. Hive 表数据的存储和压缩格式

    SerDe * 按行存储 * 按列存储 file_format: : | SEQUENCEFILE 序列化(行存储) | TEXTFILE 文本格式(行存储)- (Default, depending ...

  2. zip,rar及linux下常用的压缩格式

    日常操作中我们经常使用到文件压缩操作,其使用一些特定的算法来减小文件的大小,可以提高传输数据时的速率和减少数据在一些存储机制上占有的空间大小,实现空间利用最大化. 比如:如果你想通过邮箱发送一个文件夹 ...

  3. linux下关于gz和bz2压缩格式的常用操作技巧

    .gz和.bz2都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件..bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间. 也就是说同一个文件,压缩 ...

  4. hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)

    数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果 ...

  5. Apache Hive 存储方式、压缩格式

    简介: Apache hive 存储方式跟压缩格式! 1.Text File hive> create external table tab_textfile ( host string com ...

  6. Python解压ZIP、RAR等常用压缩格式的方法

    解压大杀器 首先祭出可以应对多种压缩包格式的python库:patool.如果平时只用基本的解压.打包等操作,也不想详细了解各种压缩格式对应的python库,patool应该是个不错的选择. pato ...

  7. [转帖]mysql常用存储引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介绍与如何选择

    mysql常用存储引擎(InnoDB.MyISAM.MEMORY.MERGE.ARCHIVE)介绍与如何选择原创web洋仔 发布于2018-06-28 15:58:34 阅读数 1063 收藏展开 h ...

  8. Linux 常见压缩格式详解

    linux 文件压缩格式详解 压缩文件原理 在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据比特(或者其它信息相关的单位)表示信息的过程.例如,如果我们将" ...

  9. Hadoop支持的压缩格式对比和应用场景以及Hadoop native库

    对于文件的存储.传输.磁盘IO读取等操作在使用Hadoop生态圈的存储系统时是非常常见的,而文件的大小等直接影响了这些操作的速度以及对磁盘空间的消耗. 此时,一种常用的方式就是对文件进行压缩.但文件被 ...

随机推荐

  1. 别老嫌Mac系统难用 这些快捷键你都用过吗

    苹果今年10月发布的全新带把儿(bar)的MacBook,轻薄炫酷的外观大受欢迎,其中当然不乏很多从Windows转到Mac阵营的用户.不少习惯了Windows操作习惯的用户在上手Mac时都会觉得非常 ...

  2. html+css上传文件控件美化

    html上传美化: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  3. Vi命令备忘

    备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...

  4. Spring——集成JPA

    配置文件如下:<applicationContext.xml> <?xml version="1.0" encoding="UTF-8"?&g ...

  5. Datazen安装

    Datazen是被微软收购的移动端全平台的数据展现解决方案.此篇主要介绍其安装过程. 下载页面,需要留意一下的是目前还没有中文版: http://www.datazen.com/start/ 点击Do ...

  6. 【转载】VS2012的打包方法

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

  7. android中 onResume()方法什么时候执行 ??(转)

    转自: onResume是在启动activity启动之后才能执行的,也就是恢复执行.程序正常启动:onCreate()->onStart()->onResume();正常退出:onPaus ...

  8. C#版 Winform界面 Socket编程 Server服务器端

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. SOAPUI使用教程-测试JDBC数据库

    soapUI中有除了开源版本的一些非常实用的功能: 使用在项目级配置的JDBC连接 使用向导创建复杂的查询. 结果显示XML输出视图(以及该使用向导在此视图中提供的XPath断言). 提供JDBC连接 ...

  10. 【转】request.getServletPath()和request.getPathInfo()用法

    转自:https://my.oschina.net/sub/blog/182408 在 Web 中,我们通常需要获取 URL 相对于 Webapp 的路径,主要是下面的几个方法: request.ge ...