草庐IT

jackson-dataformat-avro

全部标签

java - MapReduce Avro 输出正在创建文本文件

我有一个读取avro数据然后应该输出avro数据的MapReduce作业。但是,当我在作业成功时检查输出文件时,它们没有.avro扩展名,我可以使用简单的文本编辑器查看它们。我的驱动程序配置为输出avro,所以我不确定问题出在哪里,我们将不胜感激。这是我的驱动类:publicclassDriverextendsConfiguredimplementsTool{publicstaticvoidmain(String[]args)throwsException{intres=ToolRunner.run(newConfiguration(),newDriver(),args);System

Java Map Reduce 从不同格式读取 - Avro、文本文件

我有几个Hive表,其中一些是Avro格式,一些是纯文本文件。模式略有不同,但都包含我需要的某些属性。我打算编写一个mapreduce作业来处理数据。问题是我正在努力避免大量单独的工作,并尽可能地简化流程。祈祷我只需要写一份工作。是否有任何示例说明如何在一个映射器中读取不同格式的输入。例如,我在AVRO中有一个我知道的hdfs路径,我还有另一个hdfs路径,其中数据位于纯文本文件中。//Pseudocodemapper(Paths){for(PathinPaths){ifPath.containsAvro(){...readasavro}else{...readastextfile}.

hadoop - Sqoop 以 avro 格式导入日期数据类型

**我的问题是日期少了两天在SQLServer中,日期为2015-06-12(日期类型为日期),它被转换为hive表avro格式的字符串值为2015-06-10。使用的脚本。sqoop导入--connect"xxx"--query'select*fromdbo.tableNameWHERE$CONDITIONS'--target-dirxxx--fields-terminated-by'\001'--split-bytableName.columnName1-m8--as-avrodatafile--compression-codecsnappy--map-column-javacol

hadoop 2.6.0 和 avro

我正在尝试使用avro运行mapreduce,但是在尝试了网络上人们建议的所有选项之后,我仍然无法通过-15/11/0921:54:48警告mapred.LocalJobRunner:job_local1421922570_0001java.lang.Exception:java.lang.NoSuchMethodError:org.apache.avro.generic.GenericData.createDatumWriter(Lorg/apache/avro/Schema;)Lorg/apache/avro/io/DatumWriter;下面是代码(来自Hadoop权威指南)pu

serialization - oozie 上的 Avro Map-Reduce

我一直在尝试在oozie上运行Avromap-reduce。我在workflow.xml中指定映射器和缩减器类,并提供其他配置。但它给出了一个java.lang.RunTimeException-classmr.sales.avro.etl.SalesMappernotorg.apache.hadoop.mapred.Mapper当直接在hadoop集群上(而不是通过oozie)运行时,相同的作业会完成并提供所需的输出。所以我似乎可能缺少一些oozie配置。我从异常中猜想oozie要求映射器是org.apache.hadoop.mapred.Mapper的子类,但Avro映射器具有不同

apache - 为什么 Apache Avro 使用 JSON 来定义模式?

为什么ApacheAvro使用JSON来定义模式?为什么不直接使用IDL来定义模式呢?IDL转JSON有什么好处? 最佳答案 因为JSON是普通可序列化的、无处不在的,并且是原始的模式定义机制。请记住,Avro是平台中立的,它必须继续支持使用原始模式定义的平台和库——这就是消息中发送的模式。如果您开始仅传输IDL,那么一切都会中断。 关于apache-为什么ApacheAvro使用JSON来定义模式?,我们在StackOverflow上找到一个类似的问题: h

hadoop - 来自 avro.serde.schema 的错误 - "CannotDetermineSchemaSentinel"

在Hadoop(CDH4.6和Hive0.10)上运行作业时,出现以下错误:avro.serde.schema{“类型”:“记录”,“名称”:“CannotDetermineSchemaSentinel”,“命名空间”:“org.apache.hadoop.hive”,“字段”:[{"name":"ERROR_ERROR_ERROR_ERROR_ERROR_ERROR_ERROR","type":"string"},{"name":"Cannot_determine_schema","type":"string"},{"name":"check","type":“字符串”},{"nam

hadoop - Avro mapreduce 作业失败 java.lang.IncompatibleClassChangeError

我正在使用HDP2.0-hadoop2.2.0和ApacheAvro1.7.4并遵循新M/Rapi的avromapreduce指南here出现以下错误2014-07-1505:46:04,354FATAL[main]org.apache.hadoop.mapred.YarnChild:Errorrunningchild:java.lang.IncompatibleClassChangeError:Foundinterfaceorg.apache.hadoop.mapreduce.TaskAttemptContext,butclasswasexpectedatorg.apache.avr

使用 Hadoop Streaming 进行 avro 转换的 python 脚本

我有10GB的输入文件,我正在尝试使用pythonhadoop流将其转换为avro,工作成功但我无法使用avro阅读器读取输出。它给出“utf8”编解码器无法解码位置13924中的字节0xb4:无效的起始字节。这里的问题是我将标准输出用于hadoop流的映射器输出,如果我使用文件名并在本地使用脚本,则avro输出是可读的。任何想法,如何解决这个问题?我认为问题在于处理流媒体中的键/值....hadoopjar/opt/cloudera/parcels/CDH/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming.jar

azure - 我可以将 Avro 序列化数据附加到现有的 Azure blob 吗?

我在问我是否可以,但我也想知道我是否应该。这是我的场景:我正在小批量接收Avro序列化消息。我想存储它们以供以后使用带有AvroSerDe的Hive表进行分析。我在Azure中运行,并将消息存储在blob中。我试图避免有很多小Blob(因为我相信这会对Hive产生负面影响)。如果我已经将Avroheader写入blob,我相信可以使用CloudBlockBlob.PutBlockAsync()附加Avro数据block。(只要我知道同步标记。)但是,我检查了两个.NET库,它们似乎不支持我的方法。(我必须一次写入整个Avro容器文件)。http://www.nuget.org/pack