千家信息网

Hadoop的I/O 操作是什么

发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,Hadoop的I/O 操作是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.数据完整性检测数据是否损坏在数据第一次
千家信息网最后更新 2025年02月22日Hadoop的I/O 操作是什么

Hadoop的I/O 操作是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.数据完整性

  • 检测数据是否损坏

    • 在数据第一次引入系统时计算校验和并在数据通过一个不可靠的通道进行传输时再次计算校验和

    • 校验和也是可能损坏的

    • 错误检测码CRC-32 HDFS 使用的是一个更有效的变体CRC-32C

  • HDFS 的数据完整性

    • 对写入的所有数据计算校验和,并在读取数据时验证校验和

    • hadoop fs -checksum 检查一个文件的校验和

    • LocalFileSystem 执行客户端的校验和验证

    • ChecksumFileSystem

2.压缩

  • 优势:减少存储文件所需要的磁盘空间,并加速数据在网络和磁盘上的传输

    压缩格式工具算法文件扩展名是否可切分
    DEFLATEDEFLATE.deflate
    gzipgzipDEFLATE.gz
    bzip2bzip2bzip2.bz2
    LZOlzopLZO.lzo
    LZ4LZ$.lz4
    SnappySnappy.snappy
  • 所有压缩算法都需要权衡空间/时间

  • bzip2的压缩能力强于gzip,但速度慢

  • codec

压缩格式HadoopCompressionCodeC
gziporg.apache.hadoop.io.compress.GzipCodeC
bzip2org.apache.hadoop.io.compress.BZip2Codec
  • 最好使用原生类库,而不是Java实现

  • 大量压缩和解压缩,可以考虑使用CodecPool

  • 压缩和输入分片

  • 在MapReduce 中使用压缩

public static void main(String[] args) throws Exception {        if (args.length != 2) {            System.err.println("Usage: MaxTemperatureWithCompression  ");            System.exit(-1);        }        Job job = new Job();        job.setJarByClass(MaxTemperature.class);        job.setJobName("Max Temperature");        FileInputFormat.addInputPath(job, new Path(args[0]));        FileOutputFormat.setOutputPath(job, new Path(args[1]));        job.setOutputKeyClass(Text.class);        job.setOutputValueClass(IntWritable.class);        FileOutputFormat.setCompressOutput(job, true);        FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);        job.setMapperClass(MaxTemperatureMapper.class);        job.setCombinerClass(MaxTemperatureReducer.class); //减少 map 跟reducer 之间的数据传输        job.setReducerClass(MaxTemperatureReducer.class);        System.exit(job.waitForCompletion(true) ? 0 : 1);    }
  • 对map任务输出进行压缩

3.序列化

定义:序列化是指将结构化对象转化为字节流以便在网络上传输或写到磁盘进行永久存储的过程,反序列化是指将字节流转回结构化对象的逆过程

序列化用于分布式数据处理的两大领域:进程间通信和永久存储

  • Writable 接口

    void write(DataOutput out) throws IOException;void readFields(DataInput in) throws IOException;


  • IntWritable

  • WritableComparable

  • org.apache.hadoop.io

  • VIntWritable VLongWritable (变长格式会更节省空间)

  • Text 最大2GB

4.基于文件的数据结构

  • 关于SequenceFile

    • 适合二进制类型的数据

    • hadoop fs -text numbers.seq|head

  • 关于MapFile

    • MapFile 是已经排过序的SequenceFile,它有索引,所以可以按键查找。索引自身就是一个SequenceFile,包含了map中的一小部分健

  • Avro 数据文件

  • 以上几个都是面向行的数据格式,还有面向列的格式 RCFile

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 文件 格式 序列 传输 磁盘 空间 结构 存储 完整性 对象 算法 索引 网络 过程 永久 帮助 检测 结构化 验证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 灵丘智能化网络安全常见问题 通过代理服务器访问打印机 浪潮网络安全工程师三班倒 常州智能化软件开发销售价格 丽水计算机网络技术咨询服务 小米共享网络安全吗 网络技术公司加盟协议 网络安全手抄报一等奖漂亮图片 山东自动化oa管控软件开发平台 cad数据库连接失败 苏州中高端服务器优质推荐 无锡学院图书馆有哪些数据库 在保密计算机进行软件开发 互联网科技 公司 西安 大连网络技术现状 内容网络安全评估方法 网络安全伴我行征我行 无棣租房软件开发 云服务器研究 java操作什么数据库 车载网络技术口碑推荐 网络安全是九运风口 济南企业软件开发价格 山东自动化oa管控软件开发平台 广东网络安全宣传周直播 富国互联网科技股票明天会涨吗 河北惠友集团服务器五百强吗 直播卖软件开发课程 软件开发的业务应用能力 sql2008r2数据库附加
0