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
分享到:
相关推荐
《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf《Hadoop系统搭建及项目实践》课件05Hadoop IO操作.pdf《Hadoop系统搭建及项目实践》课件05Hadoop IO操作...
必须将此jar包放在org.apache.hadoop.io包下,否则无法正常覆盖使用
在标题“Hadoop本地调试NativeIO”中,我们聚焦的是Hadoop中的一个特定部分——NativeIO。NativeIO是Hadoop的一个特性,它允许使用本地(系统)库进行I/O操作,以提高性能。 NativeIO主要包含两部分:libhadoop.so...
本次实验属于计算机系《云计算技术》课程的一部分,旨在通过实践加深学生对于Hadoop IO的理解与运用能力。实验五的成绩为93分,表明该实验在设计、执行及结果分析等方面均表现出较高的水平。实验的具体目的是学习...
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中,`NativeIO`是一个接口,它定义了操作系统级别的原生I/O操作,如读写文件、获取文件系统状态等。为了提高性能和效率,部分方法通过Java的`java.lang.invoke.MethodHandle`机制调用了本地(C/C++)代码...
在Hadoop框架中,NativeIO 是一个用于执行低级文件系统操作的类,它提供了与平台相关的功能,如读写文件权限检查等。在Windows环境中,NativeIO 使用特定的方法如 `access0` 来处理这些操作,但可能会遇到异常,表明...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop2.6.0是这个框架的一个重要版本,它包含了多项优化和改进,以提高系统的稳定性和性能。在这个压缩包中,我们关注的是与Windows...
出现org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z . 需要下载重新编译的NativeIO.java
在深入探讨Hadoop源码中的`NativeIO.java`之前,我们先来理解一下Hadoop的基本概念。Hadoop是一个开源框架,主要用于处理和存储大量数据,它支持分布式计算模型,是大数据处理领域的重要工具。Hadoop的核心组件包括...
在IT行业中,Hadoop是一个广泛使用的开源框架,用于大数据处理和分布式存储。Hadoop 2.7.4是Hadoop发展中的一个重要版本,它在稳定性、性能和功能上都有所提升。本文将深入探讨在Windows 7 64位环境下编译Hadoop ...
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, ...
在网上下了好多2.6版本的hadoop.dll,但是都不好使,昨天有个好心网友给我发了一份,实际测试通过。开发环境是64位win7+hadoop2.7.1+redhat版本的linux。
在大数据处理领域,Hadoop是一个不可或缺的开源框架,主要用于分布式存储和计算。Eclipse是一款流行的Java集成开发环境,常用于开发Hadoop相关的应用程序。本文将详细介绍如何在Eclipse中使用Hadoop的各种JAR包,...
一开始使用的是原生的hadoop2.6.0编译的hadoop.dll,但是一直遇到这个问题Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String...
HadoopIO Scala/Java 库可以方便地与存储在 Hadoop HDFS 中的文件(特别是 Avro 文件)进行交互。 目录给我看看! 以下是读取存储在 HDFS 中的 Avro 文件的方法。 思考: # Shell -- note that this command line ...
在标题中提到的“修改Hadoop中的io写的,远程调用对象的东西”可能指的是对Hadoop的分布式文件系统(HDFS)进行定制化开发,以便更高效地处理数据或实现特定功能。下面我们将深入探讨这个主题。 1. **Hadoop I/O...