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 ...
随机推荐
- Python学习笔记(5)practice:shopping_cart
2019-02-27 原代码: money = int(input("请输入金额:")) list = ["phone", "clothes" ...
- 小学生绞尽脑汁也学不会的python(初识面对对象)
小学生绞尽脑汁也学不会的python(初识面对对象) 一. 面向对象思想 1. 面向过程. 重点在"过程". 按照实物的发展流程. 先干嘛,后干嘛, 最后干嘛.... 优点: 简单 ...
- Vijos 1456 最小总代价 (状压dp)
看到这道题n只有16,就可以想到状压dp 每个人只有经过或者没经过,那就用1表示经过,0表示没经过 但是不是当前在谁那里,所以再加一维来记录 所以f[state][i]表示在物品在i,当前的状态是st ...
- 不用@Value从Spring的ApplicationContext中获取一个或全部配置
获取一个配置: applicationContext.getEnvironment().resolvePlaceholders("${propertyKey}"); // 方法1 ...
- 小胖说事30------iOS 强制转成横屏的方式
一直遇到这个问题,今天最终找到了解决方法. 在我们的项目中常常遇到横竖屏切换,而又有某个特定的界面必须是特定的显示方式(横屏或竖屏).这就须要例如以下的处理了. 强制转成横屏: if ([[UIDev ...
- phonegap(cordova) 自己定义插件代码篇(六)----android ,iOS 微信支付工具整合
还是那句话,在使用插件代码篇的时候,请先了解插件机制(如整合原生插件先阅读原生插件文档.非常重要.非常重要!非常重要!),如未了解,请先阅读入门篇.这里就专贴关键代码 必须先把官方sdk 依照要求一步 ...
- windows上通过vnc连接虚拟机中linux系统
首先要在虚拟机中安装vnc. 虚拟机的设置中要启用VNC连接. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHdzc2c=/font/5a6L5L2T/ ...
- mariadb克隆
oracle有克隆安装,事实上mysql/mariadb相似.仅仅需简单几步就能够直接在异机直接启动. 环境: node01安装完毕的mariadb; node02一个新机器 如今将node01克隆到 ...
- nyoj--84--阶乘的0(数学技巧)
阶乘的0 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 计算n!的十进制表示最后有多少个0 输入 第一行输入一个整数N表示测试数据的组数(1<=N<=100 ...
- 87.node.js操作mongoDB数据库示例分享
转自:https://www.cnblogs.com/mracale/p/5845148.html 连接数据库 var mongo=require("mongodb"); va ...