hadoop自带的writable类型

Hadoop 中,并没有使用Java自带的基本类型类(Integer、Float等),而是使用自己开发的类。Hadoop 自带有很多序列化类型,大致分为以下两种:

  • 实现了WritableComparable接口的类

  基础:BooleanWritable | ByteWritable

  数字:IntWritable | VIntWritable | FloatWritable | LongWritable | VLongWritable | DoubleWritable

  高级:NullWritable | Text | BytesWritable | MDSHash | ObjectWritable | GenericWritable

  • 仅实现了Writable接口的类

  数组:ArrayWritable | TwoDArrayWritable

  映射:AbstractMapWritable | MapWritable | SortedMapWritable

为便于理解 Hadoop 自带的 Writable 类型,我们使用以下表格展示 Java 基本类型和 Writable 的对应关系


Java 基本类型


Writable 实现


字节


boolean


BooleanWritable


1


byte


ByteWritable


1


int


IntWritable


4


float


FloatWritable


4


long


LongWritable


8


double


DoubleWritable


8

  针对上述 Hadoop 中的Writable类型,我们只简单介绍一下 Text。Text 类是一种UTF-8 格式的 Writable 类型。可以将它理解为一种与 java.lang.String 类似的 Writable 类型。Text 使用int型在字符编码中存储字节数,最大值是 2GB。它有一个 find() 方法,相当于 Java 的 String 中的 indexOf() 方法。 主要通过 set(byte[] utf8) 方法重用 Text 实例,代码如下

  Text text = new Text("hadoop");//构造一个Text对象

  text.set("autoNavi");//重新赋值

时间: 2024-11-09 02:09:08

hadoop自带的writable类型的相关文章

Hadoop学习笔记—5.自定义类型处理手机上网日志

一.测试数据:手机上网日志 1.1 关于这个日志 假设我们如下一个日志文件,这个文件的内容是来自某个电信运营商的手机上网日志,文件的内容已经经过了优化,格式比较规整,便于学习研究. 该文件的内容如下(这里我只截取了三行): 1363157993044 18211575961 94-71-AC-CD-E6-18:CMCC-EASY 120.196.100.99 iface.qiyi.com 视频网站 15 12 1527 2106 200 1363157995033 15920133257 5C-

hadoop中实现定制Writable类

Hadoop中有一套Writable实现可以满足大部分需求,但是在有些情况下,我们需要根据自己的需要构造一个新的实现,有了定制的Writable,我们就可以完全控制二进制表示和排序顺序. 为了演示如何新建一个定制的writable类型,我们需要写一个表示一对字符串的实现: blic class TextPair implements WritableComparable<TextPair> { private Text first; private Text second; public Te

几个有关Hadoop自带的性能测试工具的应用

http://www.talkwithtrend.com/Question/177983-1247453 一些测试的描述如下内容最为详细,供你参考: 测试对于验证系统的正确性.分析系统的性能来说非常重要,但往往容易被我们所忽视.为了能对系统有更全面的了解.能找到系统的瓶颈所在.能对系统性能做更好的改进,打算先从测试入手,学习Hadoop几种主要的测试手段.本文将分成两部分:第一部分记录如何使用Hadoop自带的测试工具进行测试:第二部分记录Intel开放的Hadoop Benchmark Sui

自定义Writable类型

Hadoop的MapReduce计算模型的Key,Value值都是采用的自定义Writable类型,我们也可以自定义Writable来实现不同的业务需求. 1.定义: a.基于DataInput和DataOutput实现简单,高效,序列协议的可序列化对象: b.在hadoop的MapReduce计算编程模型中,必须实现Writable接口 c.实现通常实现静态read(DataInput)方法,该方法构造一个新的实例,调用readFields(DataInput)并返回实例. 2.接口说明 pu

运行Hadoop自带的wordcount单词统计程序

0.前言 前面一篇<Hadoop初体验:快速搭建Hadoop伪分布式环境>搭建了一个Hadoop的环境,现在就使用Hadoop自带的wordcount程序来做单词统计的案例. 1.使用示例程序实现单词统计 (1)wordcount程序 wordcount程序在hadoop的share目录下,如下: [[email protected] mapreduce]# pwd /usr/local/hadoop/share/hadoop/mapreduce [[email protected] mapr

利用hadoop自带程序运行wordcount

1.启动hadoop守护进程 bin/hadoop start-all.sh 2.在hadoop的bin目录下建立一个input文件夹 mkdire input 3.进入input目录之后,在input目录下新建两个文本文件,并想其写入内容 echo "hello excuse me fuck thank you">test1.txt echo "hello how do you do thank you">test2.txt 4.进入hadoop的bi

Hadoop中的java基本类型的序列化封装类

Hadoop将很多Writable类归入org.apache.hadoop.io包中,在这些类中,比较重要的有Java基本类.Text.Writable集合.ObjectWritable等,重点介绍Java基本类 1. Java基本类型的Writable封装 目前Java基本类型对应的Writable封装如下表所示.所有这些Writable类都继承自WritableComparable.也就是说,它们是可比较的.同时,它们都有get()和set()方法,用于获得和设置封装的值. Java基本类型

利用Hadoop自带example实现wordCount

上次虽然把环境搭好了,但是实际运行起来一堆错误,下面简述一下踩的坑. 1.hadoop fs -put上传文件失败 报错信息:(test文件夹是已经成功建好的) [[email protected] ~]# hadoop fs -put test1.txt /test 18/12/27 03:50:53 WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.ipc.RemoteException(java.io.IOExcep

运行hadoop自带的计算圆周率异常

运行hadoop2 自带的圆周率计算方法时,报错,找了半天,原来是在配置hadoop临时目录时,没有给权限,找到配置的hadoop临时目录文件夹,修改权限即可 Application application_1548242073562_0005 failed 2 times due to AM Container for appattempt_1548242073562_0005_000002 exited with exitCode: 1 Failing this attempt.Diagno