`

hadoop IO(一)

阅读更多

1.数据完整性:

在数据第一次引入时系统计算校验和(checksum),在数据通过一段不可靠的 通道进行传输时再次计算校验和,如果所得 的 校验和

和原来的校验和一致则代表数据完整

2.HDFS数据完整性

hdfs 对写入 的数据计算校验和,在读取数据时验证校验和。

io.bytes.per.checksum 指定校验和的数据字节大小 默认512字节

datanode验证收到的数据后存储数据及校验和,datanode管线最后一个datanode负责验证 校验和,如果检测到错误, 则客户端便 会收到一个ChecksumException 异常。客户端读取数据时也会验证校验和,datanode也会在一个后台线程中运行一个

 

DataBlockScanner,c从而定期验证存储在这个dananode上所有的数据块。

 

禁用校验和
将false 值传递给FileSystem对象的setVerifyCcheckSum()方法,可禁用校验和。

LocalFileSystem 执行客户端的校验和验证,通过ChecksumFileSystem 完成任务。ChecksumFileSystem 继承FileSystem类

FileSystem fs = ……

FileSystem checksumFiles = new ChecksumFileSystem(fs)
RawLocalFileSystem 禁用校验和

3.压缩

压缩两大好处:减少存储所需的磁盘空间,加速在网络上和磁盘上的传输

hadoop 压缩工具
Gzip 通用压缩工具,时间和空间性能居中
bzip2 比Gzip 高效,速度慢
LZO 速度快 效率低

codec 压缩解压缩算法
hadoop 对 CompressionCodec 接口的一个实现代表一个codec

CompressionCodec 包含两个函数来压缩和解压缩
1> createOutputStream()
2> createInputStream

通过CompressionCodecFactory 推断CompressionCodec

读取压缩文件时 通过文件的扩展名来判断需要使用哪个codec
getCodec()来读取

CodecPool 允许反复使用压缩和解压缩算法,分摊创建这些对象所使用 的开销

4.MapReduce 压缩

要想对MapReduce 作业进行输出压缩操作 可配置:
mapred.output.compress 设置为true
mapred.output.compression.codec 设置为 想要使用的压缩codec 名
mapred.output.compression.type 控制要使用哪种压缩格式 默认为RECODE 每条压缩 BLOCK 按组压缩(效率高)

Map 任务压缩

map 阶段的中间输入进行压缩
mapred.compression.map.output
mapred.map.output.compression.codec Class

5.序列化

将结构化数据转化为字节流 成为序列化

hadoop多个节点上的通信是通过rpc(远程过程调用) 实现的,RPC将消息序列化成二进制流后发送到远程节点,远程节 点接着将

二进制流反序列化为原始消息

hadoop 自己的序列化格式为 writable

Writable 接口 两个方法:


write()
readFields()

IntWritable 实现了 WritableCompareable 接口,该接口继承自 Writable 和 java.lang.Comparable接口

RawComparator 接口 允许直接比较数据流中的记录 ,无需反序列化

Text 针对UTF8 序列的 Writable

 

 

 

0
1
分享到:
评论

相关推荐

    《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf

    《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf《Hadoop系统搭建及项目实践》课件05Hadoop IO操作...

    org.apache.hadoop.io.nativeio

    必须将此jar包放在org.apache.hadoop.io包下,否则无法正常覆盖使用

    Hadoop本地调试NativeIO

    在标题“Hadoop本地调试NativeIO”中,我们聚焦的是Hadoop中的一个特定部分——NativeIO。NativeIO是Hadoop的一个特性,它允许使用本地(系统)库进行I/O操作,以提高性能。 NativeIO主要包含两部分:libhadoop.so...

    云计算技术实验报告五Hadoop IO

    本次实验属于计算机系《云计算技术》课程的一部分,旨在通过实践加深学生对于Hadoop IO的理解与运用能力。实验五的成绩为93分,表明该实验在设计、执行及结果分析等方面均表现出较高的水平。实验的具体目的是学习...

    hadoop2.7.3 hadoop.dll

    org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V 解决方案:下载本资源解压将hadoop.dll和winutils.exe文件复制到hadoop2.7.3的bin目录下即可解决。

    第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf

    第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大...

    hadoop2.7.6 winutil,NativeIO类

    在Hadoop中,`NativeIO`是一个接口,它定义了操作系统级别的原生I/O操作,如读写文件、获取文件系统状态等。为了提高性能和效率,部分方法通过Java的`java.lang.invoke.MethodHandle`机制调用了本地(C/C++)代码...

    Hadoop-NativeIO.java

    在Hadoop框架中,NativeIO 是一个用于执行低级文件系统操作的类,它提供了与平台相关的功能,如读写文件权限检查等。在Windows环境中,NativeIO 使用特定的方法如 `access0` 来处理这些操作,但可能会遇到异常,表明...

    hadoop2.6.0插件+64位winutils+hadoop.dll

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop2.6.0是这个框架的一个重要版本,它包含了多项优化和改进,以提高系统的稳定性和性能。在这个压缩包中,我们关注的是与Windows...

    hadoop-2.6.0-src NativeIO.java

    出现org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z . 需要下载重新编译的NativeIO.java

    Hadoop源码_NativeIO.java

    在深入探讨Hadoop源码中的`NativeIO.java`之前,我们先来理解一下Hadoop的基本概念。Hadoop是一个开源框架,主要用于处理和存储大量数据,它支持分布式计算模型,是大数据处理领域的重要工具。Hadoop的核心组件包括...

    Hadoop 2.7.4 Windows 7 64Bit 编译bin(含winutils.exe, hadoop.dll等)

    在IT行业中,Hadoop是一个广泛使用的开源框架,用于大数据处理和分布式存储。Hadoop 2.7.4是Hadoop发展中的一个重要版本,它在稳定性、性能和功能上都有所提升。本文将深入探讨在Windows 7 64位环境下编译Hadoop ...

    hadoop-lzo-0.4.20.jar

    hadoop支持LZO压缩配置 将...org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.DefaultCodec, org.apache.hadoop.io.compress.BZip2Codec, org.apache.hadoop.io.compress.SnappyCodec, ...

    hadoop2.7.1可使用的hadoop.dll

    在网上下了好多2.6版本的hadoop.dll,但是都不好使,昨天有个好心网友给我发了一份,实际测试通过。开发环境是64位win7+hadoop2.7.1+redhat版本的linux。

    hadoop的各种jar包

    在大数据处理领域,Hadoop是一个不可或缺的开源框架,主要用于分布式存储和计算。Eclipse是一款流行的Java集成开发环境,常用于开发Hadoop相关的应用程序。本文将详细介绍如何在Eclipse中使用Hadoop的各种JAR包,...

    hadoop-2.6.0-cdh5.14.0 hadoop.dll winutils

    一开始使用的是原生的hadoop2.6.0编译的hadoop.dll,但是一直遇到这个问题Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String...

    hadoopio:ScalaJava 库可方便地与存储在 Hadoop HDFS 中的 Avro 文件交互

    HadoopIO Scala/Java 库可以方便地与存储在 Hadoop HDFS 中的文件(特别是 Avro 文件)进行交互。 目录给我看看! 以下是读取存储在 HDFS 中的 Avro 文件的方法。 思考: # Shell -- note that this command line ...

    修改hadoop中的io写的,远程调用对象的东西。

    在标题中提到的“修改Hadoop中的io写的,远程调用对象的东西”可能指的是对Hadoop的分布式文件系统(HDFS)进行定制化开发,以便更高效地处理数据或实现特定功能。下面我们将深入探讨这个主题。 1. **Hadoop I/O...

Global site tag (gtag.js) - Google Analytics