ZooKeeper源码分析-Jute-第二部分

news/2024/8/26 15:51:58

数据类型和流

本部分描述支持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定义了非常简单的输入输出流接口,应用程序开发人员可以通过封装具体的流实现方法来开发这些接口的具体实例。

 

 

转载于:https://www.cnblogs.com/wangtale/p/7072694.html


http://www.niftyadmin.cn/n/2610682.html

相关文章

python写spark_使用Python的Spark:将RDD输出保存到文本文件中

我正在使用 python尝试使用spark计算单词计数问题.但是当我尝试使用.saveAsTextFile命令将输出RDD保存在文本文件中时,我遇到了问题.这是我的代码.请帮我.我被卡住了.感谢您的时间. import re from pyspark import SparkConf , SparkContext def normalizewords(text): return …

mysql中使用limit 分页

一、mysql中limit语法 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 二、mysql中limit分页说明 1、LIMIT接受一个或两个数字参数。 2、参数必须是一个整数常量 3、如果给定两个参数,第一个参数指定返回记录行的偏移量…

还叫你爸爸

一家人去云南丽江 大理 在回旅馆楼梯上 儿子忧伤的说 等我长大了 你就变老了 爸爸 到时候 我还叫你爸爸

python程序片段编程题_基本编程题 --python

基本编程题 --python 1、让Python帮你随机选一个饮品吧! import random ​ listC [加多宝, 雪碧, 可乐, 勇闯天涯, 椰子汁] print(random.choices(listC), type(random.choices(listC))) # choices函数返回列表类型数据 print(random.choice(listC), type(random.c…

jQuery中height()、innerheight()、outerheight()有什么不同

一、jQuery 中 height() 获取匹配元素集合中的第一个元素的当前计算高度值,总是返回内容宽度 二、jQuery 中 innerheight() 包括padding,但是不包括border,即: height padding 三、jQuery 中 outerhei…

jquery如何遍历json字符串

对JSON字符串的遍历 var json [{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":…

python 3.6 + numpy + matplotlib + opencv + scipy 安装

首先,下载并安装 python3.6; 然后,在网址http://www.lfd.uci.edu/~gohlke/pythonlibs/ 上 分别下载 numpy、scipy、matplotlib、opencv 的安装包,可以看到包与包之间的依赖关系,以matplotlib为例,matplotli…

c语言3级菜单_送你一个超级简单但实用的程序模板,用于收集C语言知识点

前言好记性不如烂笔头,我们平时学习也应该多做一些记录,多整理自己所学的知识,以便之后有必要的时候可以回顾。以前我刚开始学习C语言的时候经常需要验证一些比较模糊的知识点,或则想要验证一些函数时,所以我每次都会建…