Hadoop学习-5-HDFS文件存储格式

Hdfs文件存储格式

  • 从实际操作上面,hadoop可以存储任何格式的数据
  • hadoop处理最多的都是文本数据
  • orc文件,parquet、avro文件
行式存储和列式存储
  • 行式存储
    • 同一行的数据存储在一起
    • 场景
      • select * 查询
      • 写入性能高
      • 更新操作
  • 列式存储
    • 同一列的数据存储在一起
    • 场景
      • 数据计算
      • 按列查询(查询部分字段)
丰富的文件存储格式
  • text文本
    • 纯文本格式,行式存储
    • 不支持块级别压缩
    • 易读性好
  • sequence file
    • 序列化文件,以key、value键值对进行序列化存储
    • 支持record、block级别压缩,支持文件切分
    • 通常作为中间数据存储格式
  • avro file
    • 基于行存储,文件中包含json格式的schema定义
    • 支持切分、块压缩
    • 适合于大量频繁写入的宽表数据,序列化和反序列化的性能很好
  • RCFile
    • 支持压缩、切分
    • 行、列存储结合
    • 不支持schema扩展,如果需要增加新列,需重写文件
  • ORCFile
    • 支持多种压缩方式,可切分
    • 支持schema扩展
    • 以二进制方式存储,不可以直接读取
  • parquet File
    • 面向分析型业务的列式存储
    • 由行组、列块、页组成,支持块压缩
    • 以二进制形式存储
  • arrow
    • 跨语言格式,是一种列式内存数据结构
    • 主要用于构建数据系统
    • 促进多组件之间的通信,缩减了通信时序列化、反序列化的时间
文件压缩格式
  • hadoop支持的压缩格式
    • defile

    • gzip

    • bzip2

      • 支持文件切割
    • lzo

    • lz4

    • snappy

HDFS异构存储和存储策略
  • 冷、热、温、冻数据

  • 异构存储

    • 根据数据的冷热分区,存储在不同的介质上面
  • 内存,ssd,hdd,archive(高密度存储介质)

  • 需要修改文件存储路径,设置存储介质类型

    <property>
      <name>Dfs.datanode.data.dir</name>
      <value>[SSD]file:///path</value>
    </property>
    <!--SSD, DISK, ARCHIVE, RAM_DISK-->
    
  • 块存储的类型选择策略

    • 对hdfs的数据块副本存储
    • 存储策略模式
      • HOT
        • 所有副本存储在DISK中
        • 用于存储和计算
      • COLD
        • 仅适用于计算量有限的存储,不使用的 数据从热存储放到冷存储中,所有副本都是在archive
      • WARM
        • 部分冷、部分热数据
        • 部分副本在DISK中,其余的在ARCHIVE中
      • ALL_SSD
        • 所有副本在SSD中
      • ONE_SSD
        • 一个副本存在SSD,其他的在DISK中
      • LAZY_PERSIST
        • 首先写入内存,后续延迟保存在DISK中
    • 设置存储策略
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值