我一直在尝试在 oozie 上运行 Avro map-reduce。我在 workflow.xml 中指定了 mapper 和 reducer 类,并提供了其他配置。但它给出了一个
java.lang.RunTime Exception - class mr.sales.avro.etl.SalesMapper not org.apache.hadoop.mapred.Mapper
直接在 hadoop 集群(而不是通过 oozie)上运行时,相同的作业会完成并提供所需的输出。因此,我似乎可能缺少一些 oozie 配置。我从异常中猜想的是,oozie 要求映射器是一个子类,org.apache.hadoop.mapred.Mapper
但 Avro 映射器具有不同的签名——它们扩展了 org.apache.avro.mapred.AvroMapper,这可能是错误的原因。
所以我的问题是如何配置 oozie 工作流/属性文件以允许它运行 Avro map-reduce 作业。