hadoop2.2编程:序列化
测试序列化后的长度
提示:需要用到的类,以及继承关系如下:
1.java.lang.Object
|__ java.io.OutputStream
|__ java.io.ByteArrayOutputStream
//description
public class ByteArrayOutputStream
extends OutputStream
//method
byte[] toByteArray() //Creates a newly allocated byte array.
2.java.lang.Object
|__ java.io.OutputStream
|__ java.io.FilterOutputStream
|__ java.io.DataOutputStream
//description
public class DataOutputStream
extends FilterOutputStream
implements DataOutput
3. java.lang.Object
|__ java.io.OutputStream
// description
public abstract class OutputStream
extends Object
implements Closeable, Flushable
//mdthods
void close()
void flush()
void write(byte[] b)
void write(byte[] b, int off, int len)
abstract void write(int b)
4.org.apache.hadoop.io
Interface Writable
//description
public interface Writable
//methods
void readFields(DataInput in)
void write(DataOutput out)
5. java.lang.Object
|__ org.apache.hadoop.io.IntWritable
//description
public class IntWritableextends Object
implements WritableComparable
// methods
int get()
void readFields(DataInput in)
void set(int value)
void write(DataOutput out)
6. java.lang.Object
|__ org.apache.hadoop.util.StringUtils
//description
public class StringUtils
extends Object
//method
static String byteToHexString(byte[] bytes)
static String capitalize(String s)
static String[] split(String str)
static Path[] stringToPath(String[] str)
static URI[] stringToURI(String[] str)
static String uriToString(URI[] uris)
代码:
import java.io.DataOutputStream;
import java.io.ByteArrayOutputStream;
import java.lang.Byte;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.StringUtils;
public class TestWritable extends IntWritable {
public static byte[] serialize(IntWritable writable) throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
DataOutputStream dataOut = new DataOutputStream(out);
writable.write(dataOut);
dataOut.close();
return out.toByteArray();
}
public static void main(String[] args) throws Exception {
IntWritable i = new IntWritable();
i.set(8);
System.out.println(i.get());
byte[] bytes = serialize(i);
System.out.println(bytes.toString().length());
System.out.println(StringUtils.byteToHexString(bytes));
}
}
hadoop2.2编程:序列化的更多相关文章
- hadoop2.2编程: 重写comparactor
要点: 类型比较在hadoop的mapreduce中非常重要,主要用来比较keys; hadoop中的RawComparator<T>接口继承自java的comparator, 主要用来比 ...
- hadoop2.2编程:使用MapReduce编程实例(转)
原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 从网上搜到的一篇hadoop的编程实例,对于初学者真是帮助太大 ...
- hadoop2.2编程:各种API
hadoop2.2 API http://hadoop.apache.org/docs/r0.23.9/api/index.html junit API http://junit.org/javado ...
- hadoop2.2编程:DFS API 操作
1. Reading data from a hadoop URL 说明:想要让java从hadoop的dfs里读取数据,则java 必须能够识别hadoop hdfs URL schema, 因此我 ...
- hadoop2.2编程:mapreduce编程之二次排序
mr自带的例子中的源码SecondarySort,我重新写了一下,基本没变. 这个例子中定义的map和reduce如下,关键是它对输入输出类型的定义:(java泛型编程) public static ...
- c#基础语言编程-序列化
引言 程序员在编写应用程序的时候往往要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将程序数据转化成能被存储并传输的格式的过程被称为" ...
- ASP.NET Web API编程——序列化与内容协商
1 多媒体格式化器 多媒体类型又叫MIME类型,指示了数据的格式.在HTTP协议中多媒体类型描述了消息体的格式.一个多媒体类型包括两个字符串:类型和子类型. 例如: text/html.image/p ...
- Python高级编程-序列化
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: dict1 = {'name': 'Rob', 'age': 19, 'score': 90} 可以随时修改变量,比如把age改成 ...
- python IO编程-序列化
原文链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143192607 ...
随机推荐
- Installation error INSTALL_FAILED_VERSION_DOWNGRADE错误
最近折腾了一下Robotium自动化测试框架,发现问题还挺多,刚刚解决了一个问题,总算是把环境搞定了,可是一运行测试用例,发现又报Installation error INSTALL_FAILED_V ...
- 深入理解Java的接口和抽象类 _摘抄
http://www.cnblogs.com/dolphin0520/p/3811437.html 原文 深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可 ...
- 一、Maven环境搭建(windows 环境)
所需工具 : JDK 1.7 java 环境 Maven 3.3.9 下载最新版本 Windows 7 注 Maven 3.2 要求 JDK 1.6 或以上版本, 而 Maven 3.0/3. ...
- weewwe
http://blog.csdn.net/u013073524/article/details/25912891
- Net中exe之间的消息传递
1.创建一个消息通讯类 using System;using System.Collections.Generic;using System.Linq;using System.Text;using ...
- VBA 打印设置相关属性及方法
打印设置说明,以下均为默认值. With ActiveSheet.PageSetup .PrintTitleRows = "" '工作表打印标题:顶端标题行(R) .PrintTi ...
- nodejs-日常练习记录-使用express搭建static服务器.
cd C:\wxg\test\node_demo\myapp nvmw use 0.12.1 node static.js var express = require('express'); var ...
- SGU 281.Championship
题意: 有n(n≤50000)支队伍参加了两场比赛,分别有两个排名.现在要求输出总排名,如果对任意m,在两个排名的前m个队伍都相同,那么在总排名前m个队伍就是这些队伍.其它情况按字典序排. Solut ...
- struts2初印象
第一次写这么正式的文章,如果写的不好的地方,请指出. 今天玩了一下struts2,不过貌似是我被他玩了.简要笔记如下: 一.配置struts2(在eclipse Helios版本下) (1)先创建一个 ...
- tomcat配置虚拟目录的步骤
1.在tomcat中.....\conf\Catalina\localhost中创建一个test.xml文件 2.然后在\conf的server.xml中的 <Host > 元素里面 添加 ...