[发明专利]自定义的可序列化的数据结构、hadoop集群、服务器及其应用方法有效
申请号: | 201610135600.8 | 申请日: | 2016-03-10 |
公开(公告)号: | CN105760534B | 公开(公告)日: | 2019-03-05 |
发明(设计)人: | 汤奇峰;小米 | 申请(专利权)人: | 上海晶赞科技发展有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/80 |
代理公司: | 上海翰信知识产权代理事务所(普通合伙) 31270 | 代理人: | 张维东 |
地址: | 200072 上海市闸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 自定义 序列 数据结构 hadoop 集群 服务器 及其 应用 方法 | ||
一种自定义的可序列化的数据结构、hadoop集群、服务器及其应用方法,自定义的可序列化的数据结构包括数据内容与标记值类、标志值结构类、数据映射关系类,在数据的前端设置有数据源的标记内容;数据内容与标记值类用于解析数据标记值和数据内容;标记值结构类用于标记内容的读取、识别、写入;数据映射关系类用于储存和加载数据标记内容与不同数据的源的映射关系,以及数据标记内容与对应的Protobuf编译之后的类的映射关系。所述hadoop集群包括自定义的可序列化的数据结构,所述服务器包括hadoop集群。本发明自定义的数据结构既有Protobuf的特性,又有Writable的特性。同时也实现了在Hive中的反序列化接口,可以使其在Hive中的使用比一般的文本数据更加的方便、快捷,减少错误。
技术领域
本发明涉及计算机应用领域,尤其涉及一种自定义的可序列化的数据结构及其应用方法。
背景技术
现有Hadoop上的Writable数据类(例如Text,LongWritable,IntWritable,FloatWritable等)都是用于处理基础的、扁平化的数据类型的,而对于多层级的结构化数据,例如结构中嵌套结构,结构中包含列表的数据类型,目前想要传输及存储在Hadoop平台之上,只能使用Hadoop本身的一个bytesWritable类型,这个类本身无法解析数据,只可以传递数据。因此上述类型使用起来极为不便,用户要是想要使用某一个数据,必须先了解是那份数据,并且了解数据结构,才能解析这份数据,进而会带出数据字段版本不一样一系列的问题。
Protocol Buffers是一种轻便高效的结构化数据存储格式,可以用于结构化数据,即序列化数据,适合做数据存储或RPC数据交换格式。并可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。用户可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。甚至可以在无需重新部署程序的情况下更新数据结构。只需使用Protocol Buffers对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对结构化数据轻松读写。
Protocol Buffers有一个非常号的特性,即“向后”兼容性好,人们不必破坏已部署的、依靠“老”数据格式的程序就可以对数据结构进行升级。这样用户的程序就可以不必担心因为消息结构的改变而造成的大规模的代码重构或者迁移的问题,因为添加新的消息中的field并不会引起已经发布的程序的任何改变。Protobuf使用.proto文件对数据结构进行定义,方便管理,并且文件格式清楚,修改添加都很方便。
Protocol Buffers这样的数据结构在Hadoop平台上的传递有些问题,对于这样的数据结构并没有一种支持Hadoop序列化接口的对象,可以直接对数据进行操作,需要用户自己去对数据很多额外的处理,这样一来,工作成本就随之增加,需要对每一个使用数据的用户仔细介绍数据的内容,同时也增加了解析数据时的错误率,增加的一些额外的工作量也不能满足Writable机制紧凑、快速的优点。
Hadoop Writable接口是基于Datalnput(是一个用于从二进制流中读取字节的接口)和DataOutput(是一个用于向二进制流中写入字节的接口)实现的序列化协议,紧凑、快速,可以高效使用存储空间,切读写数据、序列化与反序列化的开销很小。Hadoop中的键(key)和值(value)必须是实现了Writable接口的对象。
虽然Hadoop内建了多种Writable类提供用户选择,Hadoop对Java基本类型的包装Writable类实现的RawComparable接口,使得这些对象不需要反序列化过程,便可以在字节流层面进行排序,从而大大缩短了比较的时间开销,但是当需要更加复杂的对象时,Hadoop的内建Writable类就不能满足需求了,这时就需要定制自己的Writable类,特别将其作为键(key)的时候更应该如此,以求达到更高效的存储和快速的比较。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海晶赞科技发展有限公司,未经上海晶赞科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610135600.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于虚拟地图上的印象检索方法
- 下一篇:多语言搜索引擎方法及系统