Hadoop Serialization -- hadoop序列化具体解释 (2)【Text,BytesWritable,NullWritable】
和reduce对key的比較,排序的功能,就要实现Comparable接口,这个接口规定 public int compareTo(T o);这种方法。为了增强处理大数据集的能力。我们不能老是先序列化,传输,反序列化。然后进行比較compare,太消耗时间和性能了。我们有了增强的RawComparator,RawComparator是Comparator的增强版,能够比較没有被反序列化的数据。
自然就要好好研究一下Text的实现细节,对于我们对hadoop的设计细节和思想太重要太重要。
最大值是2 GB 。此外。 Text 使用标准的UTF芯,使其更易于与理解U T F-8 的其它工具协同工作.
在開始使用一个以上字节进行编码的字符(比如中文。!
), Text 和String 之间的差别是非常明显的。
下表展示了Unicode的代码点。
0 和 1,114,111 之间的整数。Unicode 代码点使用 U+nnnn 形式的表示法来表示(当中 nnnn 是代码点的十六进制数),或使用描写叙述代码点的文本字符串来表示。比如,小写字母 “a” 能够用 U+0061 或文本字符串 "LATIN SMALL LETTER A" 来表示。 代码点能够使用不同的字符编码方案进行编码。
在 Oracle Solaris Unicode 语言环境中,使用的是
UTF-8 形式。UTF-8 是 Unicode 的一种可变长度编码形式,它透明地保留了 ASCII 字符代码值(请參见UTF-8 概述)。 代码点就是一个字符在Unicode中相应的编码。
//10 = 1+2+3+4 是其UTF -8 编码的字节数
我们能够通过对它调用set() 函数来重用Text 实例。
示比例如以下:
它的序列化格式是一个int 字段(4字节) ,指定的是字节数及字节本身。
比如。 一个长度为2 ,值为3 和5 的字节数组序列化为一个4 字节的整数(00000002)加上两个来自数组的字节(03 和05) 。
没有字节被写入流或从流中读出.它被用作占位符.比如,在MapReduce 中,在不需要这个位置的时候,键或值能够被声明为NullWritable,他有效存储了一个不变的空值。NullWritable 也能够非常实用,在打算存储一系列值的时候,作为SequenceFile 的一个键,而不是键/值对。
它是一个不变的单实例,事实上例能够通过调用NullWritable.get() 方法来检索。
Hadoop Serialization -- hadoop序列化具体解释 (2)【Text,BytesWritable,NullWritable】的更多相关文章
- Hadoop Serialization -- hadoop序列化详解 (2)【Text,BytesWritable,NullWritable】
回顾: 回顾序列化,其实原书的结构很清晰,我截图给出书中的章节结构: 序列化最主要的,最底层的是实现writable接口,wiritable规定读和写的游戏规则 (void write(DataOut ...
- Hadoop Serialization -- hadoop序列化详解 (2)
回顾: 回顾序列化,其实原书的结构很清晰,我截图给出书中的章节结构: 序列化最主要的,最底层的是实现writable接口,wiritable规定读和写的游戏规则 (void write(DataOut ...
- Hadoop Serialization -- hadoop序列化详解 (3)【ObjectWritable,集合Writable以及自定义的Writable】
前瞻:本文介绍ObjectWritable,集合Writable以及自定义的Writable TextPair 回顾: 前面了解到hadoop本身支持java的基本类型的序列化,并且提供相应的包装实现 ...
- Hadoop Serialization hadoop序列化详解(最新版) (1)【java和hadoop序列化比较和writable接口】
初学java的人肯定对java序列化记忆犹新.最开始很多人并不会一下子理解序列化的意义所在.这样子是因为很多人还是对java最底层的特性不是特别理解,当你经验丰富,对java理解更加深刻之后,你就会发 ...
- Hadoop(十一)Hadoop IO之序列化与比较功能实现详解
前言 上一篇给大家介绍了Hadoop是怎么样保证数据的完整性的,并且使用Java程序来验证了会产生.crc的校验文件.这一篇给大家分享的是Hadoop的序列化! 一.序列化和反序列化概述 1.1.序列 ...
- 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序
一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流.反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象.Java序列化(java.io. ...
- hadoop基础----hadoop理论(四)-----hadoop分布式并行计算模型MapReduce具体解释
我们在前一章已经学习了HDFS: hadoop基础----hadoop理论(三)-----hadoop分布式文件系统HDFS详细解释 我们已经知道Hadoop=HDFS(文件系统,数据存储技术相关)+ ...
- 1 weekend110的复习 + hadoop中的序列化机制 + 流量求和mr程序开发
以上是,weekend110的yarn的job提交流程源码分析的复习总结 下面呢,来讲weekend110的hadoop中的序列化机制 1363157985066 13726230503 ...
- [Hadoop 周边] Hadoop和大数据:60款顶级大数据开源工具(2015-10-27)【转】
说到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱.弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,“100%的大公司”会采用Hado ...
随机推荐
- 使用 satis 搭建 composer 本地仓库
环境 windows nginx php composer 安装 拉取 satis 项目包,并拉取项目依赖 composer create-project composer/satis --stabi ...
- Laravel核心解读--Contracts契约
Contracts Laravel 的契约是一组定义框架提供的核心服务的接口, 例如我们在介绍用户认证的章节中到的用户看守器契约IllumninateContractsAuthGuard 和用户提供器 ...
- HDU3001 Traveling (状压dp+三进制+Tsp问题总结)
(1)这道题最多可以走两次,所以有0, 1, 2三种状态,所以我们要用三进制 如果要用三进制,就要自己初始化两个数组, 一个是3的n次方,一个是三进制数的第几位的数字是什么 void init() { ...
- Set&Map区别Array
Set&Map区别Array 在Set内部,两个NaN是相等.两个对象总是不相等的.可以用length来检测 四个操作方法: add(value):添加某个值,返回Set结构本身. delet ...
- js常用事件及事件对象
- 【henuacm2016级暑期训练-动态规划专题 B】Coloring Trees
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] f[i][j][k]前i个位置,第i个位置放j这个颜色,然后形成了k个联通块的最小花费 分第i个位置有没有已经放颜色两种情况考虑. ...
- JAVA深克隆与浅克隆1
复制就是得到一个副本 克隆就是复制一个对象的复本.但一个对象中可能有基本数据类型,如:int,long,float 等,也同时含有非基本数据类型如(数组,集合等)被克隆得到的对象基本类型的值修改 ...
- 【c++版数据结构】之顺序表的实现
SeqList.h #ifndef SEQLIST_H #define SEQLIST_H #include<iostream> using namespace std; typedef ...
- 模拟退火算法c++
转载. 为方便理解, 在原博客的基础上加部分注释, 原博客地址:http://www.cnblogs.com/CsOH/p/6049117.html 今天终于用模拟退火过了一道题:CodeVS: P1 ...
- 如何编译dotnet core
1.git clone源码 2.init-tools.cmd 3. Error: DIA SDK is missing at "C:\Program Files (x86)\Microsof ...