数据类型和流

本部分描述支持Hadoop的基础数据类型以及复合类型。我们的目的是支持一系列的类型,可以用于在不同的编程语言中简化和有效表达一定范围的记录类型.

基础类型

大部分情况下,Hadoop的大部分基础类型直接映射到高级编程语言的基础类型。特殊的例子是ustring(Unicode字符串)以及buffer类型,我们相信它能被广泛使用,并且通常在库代码中实现,而不是做为语言内置程序使用。当目标语言没有内置实现且没有广泛应用的标准实现时,Hadoop能通过库代码来支持他们。基础数据类型的完整列表有如下:

byte、boolean、int、long、float、double、ustring、buffer

组合类型

Haddop支持小部分组合类型,用于描述简单的聚合类型和容器。一个组合类型被序列化的方式通常是序列化它的组成元素。组合类型包含以下几个类型:

1)Record:类似C结构体的聚合类型。它由一系列的类型字段组合被认为是一个单一的数据类型。一个Record通过序列化它的组成字段而被序列化。除了序列化以外,Record还有一个 comparison对比函数,该函数被定义成对成员逐一比较的函数。

2)vector:一系列的同样数据类型的集合,可以是基础类型也可以是组合类型。

3)map:一个关联容器,将键类型的实例映射到值类型的实例上。

Hadoop通过自动生成代码序列化和反序列化Record类型,把它转换成抽象流。针对每个目标语言Haddop定义了非常简单的输入输出流接口,应用程序开发人员可以通过封装具体的流实现方法来开发这些接口的具体实例。

ZooKeeper源码分析-Jute-第二部分的更多相关文章

  1. zookeeper源码分析之三客户端发送请求流程

    znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的 ...

  2. zookeeper源码分析之五服务端(集群leader)处理请求流程

    leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...

  3. zookeeper源码分析之四服务端(单机)处理请求流程

    上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...

  4. Zookeeper 源码分析-启动

    Zookeeper 源码分析-启动 博客分类: Zookeeper   本文主要介绍了zookeeper启动的过程 运行zkServer.sh start命令可以启动zookeeper.入口的main ...

  5. storm操作zookeeper源码分析-cluster.clj

    storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中).backtype.storm.cluster定义了两个重要p ...

  6. zookeeper源码分析之leader选举

    zookeeper提供顺序一致性.原子性.统一视图.可靠性保证服务zookeeper使用的是zab(atomic broadcast protocol)协议而非paxos协议zookeeper能处理并 ...

  7. zookeeper源码分析之二客户端启动

    ZooKeeper Client Library提供了丰富直观的API供用户程序使用,下面是一些常用的API: create(path, data, flags): 创建一个ZNode, path是其 ...

  8. zookeeper源码分析二FASTLEADER选举算法

    如何在zookeeper集群中选举出一个leader,zookeeper使用了三种算法,具体使用哪种算法,在配置文件中是可以配置的,对应的配置项是"electionAlg",其中1 ...

  9. zookeeper源码分析三LEADER与FOLLOWER同步数据流程

    根据二)中的分析,如果一台zookeeper服务器成为集群中的leader,那么一定是当前所有服务器中保存数据最多的服务器,所以在这台服务器成为leader之后,首先要做的事情就是与集群中的其它服务器 ...

  10. zookeeper源码分析(一) 工作原理

    来自:http://www.codedump.info/?p=207 阅读zookeeper代码一段时间(注:是很长一段时间,断断续续得有半年了吧?)之后,我要开始将一些积累下来的东西写下来了,鉴于我 ...

随机推荐

  1. [Cake] 0.C# Make自动化构建-简介

    0.Cake是什么? Cake是C# Make的缩写,是一个基于C# DSL的自动化构建系统.它可以用来编译代码,复制文件以及文件夹,运行单元测试,压缩文件以及构建Nuget包等等. 熟悉大名鼎鼎的M ...

  2. Visual Studio for Mac 初体验

    你喜爱的 IDE,现在可用于 Mac 来自:https://www.visualstudio.com/zh-hans/vs/visual-studio-mac/ 惊不惊喜?意不意外?惊喜但不意外,因为 ...

  3. Maven工具的介绍,配置及使用

    --------均是在Windows操作系统下,不是之前的Linux操作系统------- 1.Maven的介绍 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的 ...

  4. Ubuntu server搭建Java web服务器

    1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...

  5. Jdk1.6 JUC源码解析(7)-locks-ReentrantLock

    功能简介: Java代码层面提供的锁机制,可做为Synchronized(jvm内置)的替代物,和Synchronized一样都是可重入的. 与Synchronized相比较而言,ReentrantL ...

  6. UEditor上传图片到七牛C#(后端实现)

    由于个人网站空间存储有所以选择将图片统一存储到七牛上,理由很简单 1  免费10G 的容量  ,对个人网站足够用 2  规范的开发者文档 和完善的sdk(几乎所有热门语言sdk) 整体思路 图片上传七 ...

  7. LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2

    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误. 按照 ...

  8. 我来说说XML文件中的xmlns、xmlns:xsi和xsi:schemaLocation的具体含义

      文章摘自:https://yq.aliyun.com/articles/40353               http://www.cnblogs.com/zhao1949/p/5652167. ...

  9. 如何通过 WebP 兼容减少图片资源大小

    作者:学军又拍云 CDN 服务公测 WebP 自适应功能,为客户减少图片资源大小.本文我们将一起来阐述WebP兼容的来龙去脉. 前言我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片 ...

  10. SQL写操作 设置内容 (数组转字符串)

    SQL写操作 设置内容 (数组转字符串) SQL set内容 SQL操作数组转字符串 SQL写操作 set内容 (数组转字符串) [ 封装方法 ] function getSqlSet( $data ...