Hadoop 复习 ---- chapter05
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Hadoop 复习 ---- chapter05
-
序列化
序列化是将结构化对象转换为字节流以通过网络传输或写入持久性存储的过程。
反序列化时将字节流转换成一些列结构化对象的过程。 -
java 序列化的特点
1、复杂且庞大
2、不能被分割切片 -
hadoop 的序列化
1、紧凑
2、快速
3、可扩展性
4、互操作性 -
怎么实现 hadoop 的序列化呢
序列化相关的接口writable + comparable -
自定义的数据类型的序列化
1、自定义对象的 hadoop 序列化必须实现 writable 接口
2、提供私有属性
3、提供无参和有参构造
4、提供 getter、setter 方法
5、重写序列化方法 write
6、重写反序列化方法 redaFileds
7、注意反序列化字段的数据类型和顺序必须和序列化字段的数据类型和顺序一致
8、重写 tostring 方法 -
自定义的数据类型的序列化且排序
1、自定义对象可序列化且可排序对象必须实现 WritableComparable 接口
2、提供私有属性
3、提供无参构造及有参构造
4、提供 setter、getter 方法
5、重写序列化方法 write
6、重写反序列化方法 readFields
7、注意反序列化字段的数据类型和顺序必须和序列化字段的数据类型和顺序一致
8、重写 tostring 方法 -
为什么要压缩
1、减少文件的存储空间
2、加快数据传输 -
gzip是 linux 和 hadoop 默认的压缩格式。
不能切片它适合低于 128M 的数据压缩但是它的压缩效率排第二压缩速率排第三 -
lzo需要安装且压缩可以被切割压缩效率排第三速度排第二
-
snappy需要安装且压缩不可以被切割 压缩效率排第四速度排第一而且它的速度远远快于第二名
-
bzip2不需要安装且压缩可以被切割压缩效率第一速度排第四
-
我们应该怎么选择呢
snappy 在文件不要切割的情况下优先
lzo 在文件需要切割的情况下优先 -
压缩工具(数据编码器) org.apache.hadoop.io.compress.Compressor
-
解压工具(数据解码器) org.apache.hadoop.io.compress.Decompressor
-
hadoop 适合处理什么样的数据呢
社会处理大的文件不适合处理小的文件。 -
如何处理小的文件呢
将一些列小文件组合成一个大文件进行处理。 -
这个大文件我们称它为容器.统一对小文件进行存储。
-
hadoop 提供了两种容器SequenceFile、MapFile
-
SequenceFile无序
-
MapFile有序