大数据核心技术源码分析之-Avro篇

云计算可谓当红的发紫,而作为云计算的领头羊Hadoop的生态圈,日益增大,都知道未来的海量数据时代,掌握了制高点,就等于掌握了核心和命脉;童鞋们,如果不了解云,如何还是,如果了解云,又该如何深入呢;个人也是带着疑问,一步步走来,简单一个思路,看设计原理不难,搭建环境、准备Demo也不难;给出设计思路也不算很难;但是对核心源码的分析和对设计思路的追奔溯源,需要更大的激情和毅力;一句话
摘要由CSDN通过智能技术生成

云计算可谓当红的发紫,而作为云计算的领头羊Hadoop的生态圈,日益增大,都知道未来的海量数据时代,掌握了制高点,就等于掌握了核心和命脉;

童鞋们,如果不了解云,如何还是,如果了解云,又该如何深入呢;

个人也是带着疑问,一步步走来,简单一个思路,看设计原理不难,搭建环境、准备Demo也不难;给出设计思路也不算很难;

但是对核心源码的分析和对设计思路的追奔溯源,需要更大的激情和毅力;

一句话,Hadoop志在必得,所以打点行囊,上路吧,从底层开始首先从Avro开始;

Apache Avro™ is a data serialization system

海量数据的核心就是无边的数据,而这些数据如果采用传统的OS模型的文件格式有何不妥呢;

为何Hadoop的HDFS需要依赖底层的Avro来完成呢?

先看看Avro的设计目标:

将数据结构或对象转化成--便于存储和传输的格式 【多个节点之前的数据存储和传输要求】

支持数据密集型应用,适合于大规模数据的存储和交换。

 

看看arvo的特性和功能:

1:丰富的数据结构类型

2:快速可压缩的二进制数据格式

3:存储持久数据的文件容器

4:远程过程调用(RPC)

5:简单的动态语言结合功能

 

arvo数据存储到文件中时,模式随着存储,这样保证任何程序都可以对文件进行处理。

模式为json格式

Java写入的,可以用C/C++读取

 

下载源码分析

对应源码部分有多种语言版本

记下了在另外一部分可以看到schema

首先看下data下的Json.avsc的schema格式

{"type": "record", "name": "Json", "namespace":"org.apache.avro.data",
 "fields": [
     {"name": "value",
      "type": [
          "long",
          "double",
          "string",
          "boolean",
          "null",
          {"type": "array", "items": "Json"},
          {"type": "map", "values": "Json"}
      ]
     }
 ]
}

可以看下ipc和mapred下额schema

首先看下ipc的schema定义

1:handleshakerequest.avsc

{
    "type": "record",
    "name": "HandshakeRequest", "namespace":"org.apache.avro.ipc",
    "fields": [
        {"name": "clientHash",
  "type": {"type": "fixed", "name": "MD5", "size": 16}},
        {"name": "clientProtocol", "type": ["null", "string"]},
        {"name": "serverHash", "type": "MD5"},
  {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值