展开

关键词

首页关键词Avro

Avro

Avro依赖于模式(Schema)。Avro数据的读写操作是很频繁的,而这些操作都需要使用模式,这样就减少写入每个数据资料的开销,使得序列化快速而又轻巧。这种数据及其模式的自我描述方便于动态脚本语言的使用。当Avro数据存储到文件中时,它的模式也随之存储,这样任何程序都可以对文件进行处理。如果需要以不同的模式读取数据,这也很容易解决,因为两个模式都是已知的。当在RPC中使用Avro时,服务器和客户端可以在握手连接时交换模式。服务器和客户端有着彼此全部的模式,因此相同命名字段、缺失字段和多余字段等信息之间通信中需要解决的一致性问题就可以容易解决还有,Avro模式是用JSON(一种轻量级的数据交换模式)定义的,这样对于已经拥有JSON库的语言可以容易实现。

相关内容

  • 基于Avro文件和Avro Schema构建Avro Hive表

    使用avro-tools获取Avro文件的Schemaavro-tools getschema hdfs:localhost:9000userhivewarehouseretail_stage.dborderspart-m-00000.avro >~orders.avsc将Avro文件的Schema文件上传到HDFShdfs dfs -put orders.avsc userhivewarehouseavroschemaorderscreate external table retail_stage.orders_sqooplocation userhivewarehouseretail_stage.dbordersstored as avro这里填写avro文件的schema文件tblproperties(avro.schema.url=hdfs:localhost:9000userhivewarehouseavroschemaordersorders.avsc
    来自:
    浏览:1276
  • 使用Apache Avro的Avro阵列

    实际上,我的问题类似于下面的链接中显示的答案(其中显示了使用avsc javascript库进行序列化去序列化),但我需要一个解决方案来序列化到avro,并使用apache avro for java对其进行反序列化…… Json数组的Avro架构 https:avro.apache.orgdocscurrentgettingstartedjava.html 数据 模式 { name: Name,type: array, namespace: com.hi.avro.model, items: { name: NameDetails, type: record, fields: }} 感谢任何帮助
    来自:
    回答:1
  • 广告
    关闭

    2021 V+全真互联网全球创新创业挑战赛

    百万资源,六大权益,启动全球招募

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • Apache Avro 入门

    简介Apache Avro(以下简称 Avro)是一种与编程语言无关的序列化格式。Doug Cutting 创建了这个项目,目的是提供一种共享数据文件的方式。Avro 有一个很有意思的特性是,当负责写消息的应用程序使用了新的 schema,负责读消息的应用程序可以继续处理消息而无需做任何改动。到写本篇博客的时间为止,avro的最新版本为1.8.22.创建 maven 工程(1) 加入 avro 依赖 org.apache.avro avro 1.8.2 (2) 加入 avro 插件的依赖 org.apache.avro avro-maven-plugin;import org.apache.avro.io.DatumWriter;import org.apache.avro.specific.SpecificDatumWriter; import com.avro.example.User;import org.apache.avro.file.DataFileWriter;import org.apache.avro.generic.GenericData;import org.apache.avro.generic.GenericDatumWriter
    来自:
    浏览:1362
  • Spark阅读Avro文件

    我正在使用com.databricks.spark.avro。当我从spark-shell运行它时spark-shell --jar spark-avro_2.11-4.0.0.jar,我可以通过这样做来读取文件: import org.apache.spark.sql.SQLContextvalsqlContext = new SQLContext(sc)val avroInput = sqlContext.read.format(com.databricks.spark.avro).load(inputPath)avroInput.write.format(com.databricks.spark.avro).save(outputPath) 但是,如果我尝试使用我的项目做同样的事情sbt$AvroDataFrameReader$$anonfun$avro$2.apply(package.scala:34) com.databricks %% spark-avro % 4.0.0在我的依赖项中列出
    来自:
    回答:1
  • Avro序列化&反序列化和Spark读取Avro数据

    1.简介 本篇文章主要讲如何使用java生成Avro格式数据以及如何通过spark将Avro数据文件转换成DataSet和DataFrame进行操作。 1.1Apache Arvo是什么?Apache Avro 是一个数据序列化系统,Avro提供Java、Python、C、C++、C#等语言API接口,下面我们通过java的一个实例来说明Avro序列化和反序列化数据。支持丰富的数据结构 快速可压缩的二进制数据格式 存储持久数据的文件容器 远程过程调用(RPC) 动态语言的简单集成 2.Avro数据生成 2.1定义Schema文件 1.下载avro-tools-1.8.1.jar | Avro官网:http:avro.apache.org Avro版本:1.8.1 下载Avro相关jar包:avro-tools-1.8.1.jar 该jar包主要用户将定义好的schemaavro 1.8.1 | |:----| 2.新建java类GenerateDataApp,代码如下 动态生成avro文件,通过将数据封装为GenericRecord对象,动态的写入avro文件
    来自:
    浏览:2269
  • Microsoft Avro介绍

    Microsoft发布了他们自己对Apache Avro通信协议的实现。Avro被描述为“紧凑的二进制数据序列化格式,类似于Thrift或者Protocol Buffers”,同时还有像Hadoop这样的分布式处理环境所需要的额外功能。和Protocol Buffers不同的是,Avro协议是自描述的。当客户端和服务器之间建立连接的时候,模式就会被传送。由于以上种种原因,Microsoft Avro类库能支持下面三种模式:反射模式。基于.NET类型的模式构建序列化器的IL代码以便于实现性能最大化。 通用记录模式。文件格式与Avro容器文件规范兼容,同时能够跨平台使用。在反射模式下使用的时候,Avro使用WCF开发者所熟悉的DataContractDataMemeber属性。
    来自:
    浏览:278
  • 时间戳与avro架构

    我有Vertica调度程序,它使用来自Kafka的avro数据。其中一个Vertica的列是TIMESTAMP,目前,我尝试定义了Avro架构,如下例所示: { name:startDate, type: long, logicalType: timestamp-millis任何想法我需要在avro架构中进行哪些更改?
    来自:
    回答:2
  • Spark:写入Avro文件?

    我在Spark,我有一个Avro文件的RDD。我现在想对该RDD进行一些转换并将其保存为Avro文件: val job = new Job(new Configuration())AvroJob.setOutputKeySchema(job, getOutputSchema
    来自:
    回答:2
  • avro使用schema生成java文件

    com.ric, type: record, name: Customer, fields: , default : null}, {name:images,type:,default:null} ]}下载avro-tools-1.8.2.jar工具,可以通过maven来下载 org.apache.avro avro-tools 1.8.2 cmd下执行如下指令,生成schema对应的entity指令格式:java -jarpathtoavro-tools-1.8.0.jar compile schema 最佳实践java -jar avro-tools-1.8.2.jar compile schema Customer.avsc
    来自:
    浏览:342
  • dubbodubbox 增加原生thrift及avro支持

    (facebook) thrift (hadoop) avro (google) probuf(grpc)是近几年来比较抢眼的高效序列化rpc框架,dubbo框架虽然有thrift的支持,但是依赖的版本较早参考这个思路,avro也很容易集成进来:AvroProtocol.javapackage com.alibaba.dubbo.rpc.protocol.avro; import com.alibaba.dubbo.common.URL;import org.apache.avro.ipc.NettyTransceiver;import org.apache.avro.ipc.Server;import org.apache.avro.ipc.reflect.ReflectRequestor: ... dubbo-rpc-avro ... dubbo-rpc-thrift2 ...${project.parent.version} org.apache.avro avro org.apache.avro avro-ipc 这样打包出来的dubbo-xxx.jar里,就包括新增的
    来自:
    浏览:613
  • rpc框架之avro 学习 1 - hello world

    avro-client模块中的pom.xml参考以下内容: 1 2 5 4.0.0 6 7 yjmyzz.avro 8 avro-client 9 1.010 11 12 UTF-813 2.3.214avro33 ${avro.version}34 35 36 org.apache.avro37 avro-ipc38 ${avro.version}39 40 41 42 yjmyzz.avro43}54 55 56 org.apache.avro57 avro-maven-plugin58 ${avro.version}59 60 61 schemas62 generate-sources63100000 次RPC调用,耗时:18617毫秒,平均5371次秒注:虽然很多关于thrift、avro的性能评测文章提到avro性能不输于thrift,但就本文的示例而言,在同一台笔记本上,avroAvro 与 Thrift 比较
    来自:
    浏览:482
  • Avro模式的多态性与继承?

    是否可以编写一个Avro模式IDL来生成扩展基类或实现接口的Java类?似乎生成的Java类扩展了org.apache.avro.specific.SpecificRecordBase。
    来自:
    回答:2
  • rpc框架之 avro 学习 2 - 高效的序列化

    借用Apache Avro 与 Thrift 比较 一文中的几张图来说明一下,avro在序列化方面的改进:1、无需强制生成目标语言代码?关于avro的序列化,可以用下面的代码测试一下:package yjmyzz.avro.test; import org.apache.avro.Schema;import org.apache.avro.generic.GenericDataimport org.apache.avro.generic.GenericRecord;import org.apache.avro.io.还要小,确实在序列化方面avro做得更好。,所以在RPC的性能方面,avro仍有很多可以优化的空间,默认情况下,从我自己测试的情况下,avro是不敌thrift的。
    来自:
    浏览:610
  • Hadoop Avro支持多输入AvroMultipleInputs

    Avro 提供了1.x版本的AvroMultipleInputs,但是不支持2.x API版本,因此修改对应代码,增加对hadoop 2.x API版本的的支持代码放在https:github.comjadepengAvroMultipleInputs
    来自:
    浏览:352
  • 如何读取嵌套的Avro字段以创建流?

    我在在Kafkatopic中有如下AVRO消息。DEA_NME_ALIAS_NAME VARCHAR, DEA_NUM_DEAL_CNTL VARCHAR) WITH (kafka_topic=deal-ogg-topic,value_format=AVRO, key = DEA_PID_DEAL); 但是,当我将Avro消息更改为遵循它时,它就能工作了。
    来自:
    回答:2
  • 谷歌数据流转换为Avro与Parquet的云端存储

    我们假设,与GCP的avro相比,数据足迹大小的镶木地板文件大小将更小,因为HDP(Hortonworks)和CDH(Cloudera)显示了如上所述的类似研究。https:stackoverflow.coma310931054250322 但是,这10k记录的结果表明GCS上的Avro尺寸较小。可以假设选择数据格式。结果: 镶木地板格式= 69.45kb + 71kb + 72 kb + 75 kb + 71 kb = 358.5 kb avro格式= 32 kb + 33kb + 31 kb = 96 kb 文本格式write as text output filecollection.apply(TextIO.write().to(stagingLocation)); Using AvroIO write as avrooutput filepCollectionGenericRecords.apply(AvroToGCS, AvroIO.writeGenericRecords(AVRO_SCHEMA)
    来自:
    回答:1
  • Avro模式中的多态性和继承?

    是否可以编写一个Avro模式 IDL来生成扩展基类或实现接口的Java类?看起来好像生成的Java类扩展了org.apache.avro.specific.SpecificRecordBase。
    来自:
    回答:2
  • python - deserialise avro byte逻辑类型decimal到decimal

    我试图使用python avro库(python 2)读取一个Avro文件。当我使用以下代码时: import avro.schemafrom avro.datafile import DataFileReader, DataFileWriterfrom avro.io importDatumReader, DatumWriter, BinaryDecoderreader = DataFileReader(open(filename.avro, rb), DatumReader(
    来自:
    回答:1
  • Kafka 中使用 Avro 序列化框架(二):使用 Twitter 的 Bijection 类库实现 avro 的序列化与反序列化

    使用传统的 avro API 自定义序列化类和反序列化类比较麻烦,需要根据 schema 生成实体类,需要调用 avro 的 API 实现 对象到 byte 到对象的转化,而那些方法看上去比较繁琐,幸运的是,Twitter 开源的类库 Bijection 对传统的 Avro API 进行了封装了和优化,让我们可以方便的实现以上操作。添加 Bijection 类库的依赖,并新建一个 schema 文件Bijection 类库的依赖如下: com.twitter bijection-avro_2.11 0.9.6 在 maven 工程的;import org.apache.avro.generic.GenericData;import org.apache.avro.generic.GenericRecord;import org.apache.kafka.clients.producer.KafkaProducer编码消息:Producter篇 在Kafka中使用Avro编码消息:Consumer篇
    来自:
    浏览:547
  • kafka使用avro序列化和反序列化

    使用avro生成entity文件可以查看这篇文章https:blog.csdn.netu012062455articledetails84889694生产者代码 public static void CustomerTeste.printStackTrace(); } } } } finally { consumer.close(); } }相关pom依赖 org.apache.kafka kafka_2.11 1.0.0 org.apache.avroavro 1.8.2 org.apache.avro avro-tools 1.8.2 com.twitter bijection-avro_2.11 0.9.6
    来自:
    浏览:540

扫码关注云+社区

领取腾讯云代金券