当前位置: 首页 > 科技观察

OpenHarmony啃论文成长计划---ApacheAvro和Twister_0

时间:2023-03-13 12:06:44 科技观察

更多内容请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto。com大家好!我是深圳科技大学FSR实验室的同学。本人在OpenHarmony成长计划啃论文俱乐部,学习和研究序列化相关技术...【本期亮点】ApacheAvro开发时间及应用。文学界概况。Twister架构与ApacheAvro集成。ApacheAvro开发时间及应用开源地址:apache/avro:ApacheAvro是一个数据序列化系统。(github.com)。今天我们要说的是ApacheAvro,它是Hadoop的一个子项目,由Hadoop创始人DougCutting领导。Avro是一种数据序列化系统,旨在支持交换大量数据的应用程序。其主要特点是:支持二进制序列化,可以方便快捷地处理大量数据;对动态语言友好,Avro提供的机制使得动态语言可以方便的处理Avro数据。它的主要应用场景也是大数据处理。ApacheAvro模式可以为单个字段声明潜在类型的有序列表。在这些情况下,ApacheAvro二进制编码使用32位ZigZag编码的小端字节序128(LEB128)可变长度带符号整数作为前缀,该整数对应于有序类型列表中的索引。对于由多种类型组成的字段,它会被编码为数据类型索引(Typeindex)。例如下图中,如果schema定义了一个类型为["string","int","null"]的字段,那么如果该值为字符串,则该值会加上0x00前缀,如果该值是一个整数,它会加上0x02作为前缀,如果值为空,则0x04作为前缀,然后作为数据段的类型索引(Typeindex)。文献场景概述本次分享的文献是关于ApacheAvro在Twister消息系统中的应用。该项目的目标是研究和实施一种新的Twister消息传递系统方法。Twister是一个迭代的MapReduce框架,它将MapReduce范式提升到一个更高的层次,满足迭代性质的应用。Twister通过NaradaBrokering使用发布/订阅消息系统,但由此产生的问题是,与较小的控制消息相比,交换相对较大的数据消息时,消息体验会有所延迟。为了研究这个问题,论文提出了另一种方法来实现,即通过远程过程调用(RPC),并选择ApacheAvro作为RPC框架,所有的计算节点可以直接相互发送和接收数据,而不是通过代理系统。下面我们来看看ApacheAvro与原来的NaradaBrokerin系统的性能差异。与ApacheAvro集成的Twister架构如上图所示。ApacheAvro用于TwisterDriver(Twister驱动程序)和TwisterDaemon之间以及TwisterDaemon之间的通信。每个节点都可以通过RPC和序列化直接相互通信,而不是通过代理系统发送或接收消息。这样,可以消除发布/订阅代理系统与计算节点之间的通信开销和瓶颈。测试结果上图展示了使用我们的ApacheAvro和原来的NaradaBrokerin系统在不同数据量上运行K-means算法的时间性能差异。正如预期的那样,这个基于ApacheAvro的替代方案减少了通信开销并提高了系统性能。更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com