hadoop_6 : Hadoop的相关技术

来源:互联网 发布:网上电脑软件培训 编辑:程序博客网 时间:2024/05/21 13:54

序列化

  • 对象序列化:用于将对象编码成一个字节流,以及从字节流重新构建

hadoop的序列化机制

  • org.apache.hadoop.io.Wirtable接口
  • org.apache.hadoop.io.Comparable接口
< < interface>>: Writable //输出序列化结果到流中 +write (对象状态写入到二进制DataOutput) +readFields (从DataInput流中读取)

* RawComparator接口允许比较流中的未被反序列对象

Wirtable封装

  • 继承自 WritableComparable接口
WritableComparable接口 继承自:Wirtable接口+Comparable接口
//基本类型是Wirtable类型的封装BoolenWritable: 1(序列化后的长度)ByteWritable: 1(序列化后的长度)IntWritable: 4(序列化后的长度)FloatWritable: 4(序列化后的长度)LongWritable: 8(序列化后的长度)DoubleWritable: 8(序列化后的长度)//继承自WritableComparable接口;都是可比较的,get()和set()方法
  • Writable的java基本类型
public class VIntWritable impelements WritableComparable{    private int value;//设置值    public void set(int value) {this.value=value;}//获取值     public void get() {return value;}    public void read Fields(DataInput in) throws IOException    {        value=WritableUtils.read.Vint(in);    }      public void write(DataOutput in) throws IOException    {        WritableUtils.write.Vint(out,value);    }}

ObjectWirtable 类的实现

  • 适用于字段需要使用多种类型
  • 保存不同类型的对象

压缩

  • bzip2可以对压缩文件直接分块split

hadoop的远程调用

原理和机制

  • 远程调用:用户可以像调用本地方法一样调用其他应用程序的服务
  • hadoop IPC(inter-process communications)
A调用B,A是RPC的客户端;B是RPC的服务器端1. theClient需要调用一个远程服务,将参数打包成消息,并附加被调用过程的名字,发生到服务器2. theServer运行时会阻塞在接收消息的调用上,结束后返回消息
  • RPC: 客户存根+服务器骨架

java远程方法调用(RMI)

  • RMI: 容许一个java虚拟机上运行的java程序调用不同虚拟机上运行的对象中的方法

java动态代理

  • 三个直接支持类
Proxy;InvocationHandler;Method

Java NIO


0 0
原创粉丝点击