Hadoop的API官网:http://hadoop.apache.org/common/docs/current/api/index.html
 
相关的包
org.apache.hadoop.io
org.apache.hadoop.io.compress
org.apache.hadoop.io.file.tfile
org.apache.hadoop.io.serializer.arvo
 
Apache官网的sort900实验用了900台主机
淘宝用了1500台主机来存储数据。
Hadoop采用CRC-32来校验数据。
 
数据完整性:
1:本地文件的IO检查
校验和机制的相关的类:org.apache.hadoop.fs.ChecksumFileSystem来读取相关的类
禁用校验和机制:修改src/core/core-default.xml中的fs.file.impl的值为org.apache.hadoop.fs.RawLocalFileSystem
 
 
2:HDFS的文件IO检查
(1)datanode接收数据后存储数据前
(2)客户端读取datanode上的数据时
(3)datanode后台守护进程的定期检测
 
3:数据恢复策略
(1)检查已恢复标签
(2)统计各个备份数据的恢复状态
(3)副本同步
hadoop fs -get [ignoreCrc]  [-crc] <src>  <localdst>
 
数据压缩:
1:减少存储空间
2:加快传送速度
org.apache.hadoop.io.compress包
代码如下:
conf.setBoolen("mapred.compress.map.output",true)
conf.setBoolen("mapred.output.compress",true)
conf.setBoolen("mapred.output.compression.type","Block")
conf.setClass("mapred.output.compression.codec",GzipCodec.class,CompressionCodec.class)
 
数据序列化
(1)进程间通信
(2)数据持久化存储
 
 

org.apache.hadoop.io.Writable类和java.lang.Comparable   
 
1.Writable类定义了两个方法:
序列化输出数据流:   void     write(Dataoutput out)   throw       IOException
反序列化输入数据流:void    readFields(Datainput in)throw   IOException
 
2.Comparable类定义了三个方法:
comparreTo方法,hashCode方法,equals方法
 
3.WritableComparablewrite方法,readFields方法,comparreTo方法,hashCode方法,equals方法
 

                                       
java.util.Comparator                            
Comparator类的compare方法
RawComparator类
WritableComparator
 
 

NullWritable

ByteWritable和BytesWritable

 

ObjectWritable

ArraryWritable和TwoDArraryWritable
Text
MapWritable和sortedMapWritable
CompressedWritable
GenericWritable
VesiondWritable
 

针对Hadoop的文件类
SequenceFile类和MapFile类
SequenceFile类记录的是key-value对,是序列化后的二进制文件
有三种类型结构:
1:未压缩的key-value对
2:记录压缩的key-value对,只有value被压缩
3:block 压缩的key-value对,key和value分别被压缩
 
 
 

Hadoop的IO操作的更多相关文章

  1. [.NET] 利用 async & await 进行异步 IO 操作

    利用 async & await 进行异步 IO 操作 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6082673.html  序 上次,博主 ...

  2. 文件IO操作..修改文件的只读属性

    文件的IO操作..很多同行的IO工具类都是直接写..但是如果文件有只读属性的话..则会写入失败..所以附加了一个只读的判断和修改.. 代码如下: /// <summary> /// 创建文 ...

  3. python之协程与IO操作

    协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B ...

  4. JAVASE02-Unit08: 文本数据IO操作 、 异常处理

    Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.i ...

  5. JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

    基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import ja ...

  6. IO操作概念。同步、异步、阻塞、非阻塞

    “一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作. 同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO. 阻塞IO和非阻塞IO的区别在于第 ...

  7. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  8. java中的IO操作总结

    一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...

  9. Linux系统编程--文件IO操作

    Linux思想即,Linux系统下一切皆文件. 一.对文件操作的几个函数 1.打开文件open函数 int open(const char *path, int oflags); int open(c ...

随机推荐

  1. 大数据(2) - Hadoop完全分布式的部署

    apache hadoop 官方文档 ** Hadoop介绍 ** HDFS:分布式存储文件 角色:NameNode和DataNode ** YARN:分布式资源调度框架(Hadoop2.x以上才引用 ...

  2. Prerender Application Level Middleware - ASP.NET Core Middleware

    In the previous post Use Prerender to improve AngularJS SEO, I have explained different solutions at ...

  3. centos7 mysql 5.7 官网下载tar安装

    https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载好上传到服务器,解压后以此安装 libs,client,server三个rpm r ...

  4. libxl库的介绍,对Excel操作封装得很好的一个库,兼容2007版和多字节字符(最后有破解版下载)

    前段时间忙着毕业论文,终于有时间写博客了. 早些时候老大给我的一个任务需要对excel进行读表操作,研究了一下c++对excel的操作. 对Excel的操作基本有com,ODBC,AD等,其中ODBC ...

  5. redux sample with redux source code

    code sample没有package.json文件,也就没有任何外部依赖,直接使用redux source code. nodejs对es6的import export还不支持,这里使用了stac ...

  6. ACM 博弈(难)题练习 (第一弹)

    第二弹: 套路&&经验总结: 1. N堆***的游戏,一般可以打表找SG函数的规律.比如CodeForces 603C 2.看起来是单轮的游戏,实际上可能拆分成一些独立的子游戏.比如C ...

  7. 使用Using的注意事项

    参数传递 C#中有四种参数类型:值类型,Ref参数,Out参数,params参数.默认参数都是以传值方式传递,这意味着方法中的变量会在内存中被分配新的存储空间,并赋值.对于引用类型,这种传值意味着传递 ...

  8. VC中怎么输入特殊符号(如平方、立方等下标符号)

    同在列表控件里显示汉字一样,直接把输入法里特殊字符放进一个数组里,然后再赋值:CString F[]={"m²","∑","±"," ...

  9. Codeforces 193A. Cutting Figure

    看起来非常神,但仅仅有三种情况 -1 , 1 ,2..... A. Cutting Figure time limit per test 2 seconds memory limit per test ...

  10. html input accept类型

    在上传文件的时候,需要限制指定的文件类型. <input type="file" accept="image/*" /> accept表示可以上传文 ...