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包下,否则无法正常覆盖使用
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z Hadoop源码_NativeIO.java
解决本地调试Hadoop 异常。 org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大数据处理实战)Hadoop的IO操作.pdf第五章(Hadoop大...
hadoop 本地调试代码,暂时还未调试完成,等待本地调试成功
hadoop2.7.6本地运行需要的jar包和报错处理,有winutils.exe,libwinutils.lib,和NativeIO
org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V 解决方案:下载本资源解压将hadoop.dll和winutils.exe文件复制到hadoop2.7.3的bin目录下即可解决。
出现org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z . 需要下载重新编译的NativeIO.java
Linux,eclipse 要求改写实验4的GetMerge程序,实现将云端多个文件压缩到单个文件下载到本地。 1)采用Gzip压缩方法,本地文件为Merger.gz; 2)云端文件需要超过2个文件。
hadoop2.6.0插件+64位winutils+hadoop.dll
在网上下了好多2.6版本的hadoop.dll,但是都不好使,昨天有个好心网友给我发了一份,实际测试通过。开发环境是64位win7+hadoop2.7.1+redhat版本的linux。
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, ...
HadoopIO Scala/Java 库可以方便地与存储在 Hadoop HDFS 中的文件(特别是 Avro 文件)进行交互。 目录给我看看! 以下是读取存储在 HDFS 中的 Avro 文件的方法。 思考: # Shell -- note that this command line ...
一开始使用的是原生的hadoop2.6.0编译的hadoop.dll,但是一直遇到这个问题Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String...
Java-org.apache.hadoop,Java-org.apache.hadoop,Java-org.apache.hadoop
针对问题: hadoop2.7.1下运行org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 解决办法: 1:解压该文件 2:将hadoop.dll复制到C:\Window\System32下 3:添加环境变量HADOOP_HOME...
import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; // 案例:统计每一个单词出现的次数 // KEYIN - 这一行的偏移量 --- // VALUEIN
org.apache.hadoop.io.serializer.avro org.apache.hadoop.jmx org.apache.hadoop.lib.lang org.apache.hadoop.lib.server org.apache.hadoop.lib.service org.apache.hadoop.lib.service.hadoop org.apache....