我有一个HadoopMapReduce程序,它在Map阶段的自创建函数中使用Avro存储数据,然后再将其发送到reduce阶段。当我运行该函数时,出现此错误:Causedby:java.lang.IllegalAccessError:triedtoaccessmethodorg.apache.avro.specific.SpecificData.()Vfromclasscom.example.myapp.avro.PointListPointList数据类型有int,但它没有double的问题。您知道是什么原因造成的吗? 最佳答案
我有一个多模块项目。有一个核心模块定义了一些通用或通用的东西。我在该核心模块中定义了一个avdl文件。我想在其他模块中定义一些其他avdl文件,这些文件使用核心模块中avdl文件定义的类型。有没有办法用avromaven插件做到这一点? 最佳答案 如果您正在使用maven,您应该能够使用maven插件(来自文档)编译您的avdl文件org.apache.avroavro-maven-pluginidl-protocol如果您期望去定义本身,您应该能够将它作为资源的一部分放在您的公共(public)项目中,并像另一个依赖项一样共享它。
我在一个驻留在hadoop环境的目录下有多个avro文件,我需要合并所有这些文件并将其作为一个avro文件。例子/abc->x.avroy.avro}=>a.avroz.avro文件a.avro将包含所有x、y、z文件的内容,其中x、y、z文件具有相同的模式。我需要创建一个Java应用程序。任何帮助表示赞赏。谢谢。 最佳答案 apacheavro提供了一些工具来处理avro文件操作here.这些工具包括Merging/Concat工具,它将相同模式的avro文件与非保留元数据合并,catTool从Avro数据文件中提取样本,将输入文
当我尝试在avro上运行mapreduce时出现以下错误:14/02/2620:07:50INFOmapreduce.Job:TaskId:attempt_1393424169778_0002_m_000001_0,Status:FAILEDError:org.apache.avro.generic.GenericData.createDatumWriter(Lorg/apache/avro/Schema;)Lorg/apache/avro/io/DatumWriter;我该如何解决这个问题?我已经启动并运行了Hadoop2.2。我正在使用Avro1.7.6。代码如下:packagea
我创建了一个这样的外部配置单元表:CREATEEXTERNALTABLEsome_hive_tableROWFORMATSERDE'org.apache.hadoop.hive.serde2.avro.AvroSerDe'STOREDASINPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'LOCATION'/hdfs/path/some_hive_tab
我如何创建一个ScaldingSource来处理avro和parquet之间的转换。解决方案应该:1.Readfromparquetformatandconverttoavromemoryrepresentation2.Writeavroobjectsintoaparquetfile注意:我注意到Cascading有一个用于利用thrift和parquet的模块。我突然想到,这将是一个开始寻找的好地方。我还在google-groups/scalding-dev上开了一个帖子 最佳答案 试试我们在这个分支中的最新变化-https://
我正在使用Hadoop将JSON转换为CSV文件,以便使用Hive访问它们。目前,Mapper正在填充自己的数据结构,使用JSON-Smart解析JSON。然后reducer读出该对象并将其写入文件,以逗号分隔。为了加快速度,我已经在数据结构中实现了可写接口(interface)...现在我想对数据结构对象使用Avro,以获得更大的灵active和性能。我怎样才能更改我的类以使它们交换Avro对象而不是可写对象? 最佳答案 Hadoop通过SerializationFactory提供了一个可插入的序列化机制。.默认情况下,Hadoo
我是使用Avro编写HadoopMapReduce的初学者,不清楚传入map/reduce方法与PairwithString、CharSequence或Utf8之间有什么区别?如果字符串只是简单的“helloworld”之类的东西怎么办?例如,这里有一个简单的映射方法,在本例中使用CharSequence作为输出键类型:publicvoidmap(Pairdatum,AvroCollector>collector,Reporterreporter)throwsIOException{Integernumber_one=newInteger(1);Stringoutput_key="he
我想序列化一个JSON对象,该对象具有可能可变的键数,表示手机设备ID(由于Android和iPhone的差异)。例如,JSON对象可能如下所示(对于Android):"deviceids":{"openudid":"","androidid":"dcbfXXXXXc2d5f","imei":"3533XXXXX941712"}而iPhone看起来像这样:"deviceids":{"openudid":"37368a5361XXXXXXXXXXdaedc186b4acf4cd4","ifv":"BD87ECBF-XXXXXXXXXX-DDF46E18129A","mac":"XXXXX
我正在尝试为以下json构建一个avro模式:{"id":1234,"my_name_field":"my_name","extra_data":{"my_long_value":1234567890,"my_message_string":"HelloWorld!","my_int_value":777,"some_new_field":1}}“id”和“my_name_field”的值是已知的,但“extra_data”中的字段动态变化且未知。我想到的avro模式是:{"name":"my_record","type":"record","fields":[{"name":"id"