jjzjj

java - Mapreduce Hadoop作业异常输出目录已存在

我正在使用以下运行代码运行mapreduce作业,它一直给我以下异常。我确保在开始工作之前删除了该文件夹,但它不起作用。代码:JobConfjobConf=newJobConf(getConf(),MPTU.class);jobConf.setJobName("MPTU");AvroJob.setMapperClass(jobConf,MPTUMapper.class);AvroJob.setReducerClass(jobConf,MPTUReducer.class);longmilliSeconds=1000*60*60;jobConf.setLong("mapred.task.t

java - 一个作业更新另一个作业输出的最佳方式

这是我的场景。我有一份处理大量csv数据并使用Avro将其写出到按日期划分的文件中的工作。我得到了一个小文件,我想用它来更新其中一些文件和第二个作业的附加条目我可以在需要发生时运行,而不是再次重新处理整个数据集。这个想法大概是这样的:工作1:处理大量csv数据,将其写入压缩的Avro文件中,按输入日期拆分为多个文件。源数据未按日期划分,因此此作业将执行此操作。Job2(在Job1运行之间根据需要运行):处理小更新文件并使用它来将条目添加到适当的Avro文件中。如果它不存在,则创建一个新文件。Job3(始终运行):根据Job1(可能还有Job2)的输出生成一些报告指标。因此,我必须以这种

apache - 使用反射将 pojo 写入 parquet 文件

HI正在寻找API来使用我拥有的Pojos编写parquest。我能够使用反射生成avro模式,然后使用AvroSchemaConverter创建Parquet模式。此外,我无法找到将Pojos转换为GenericRecords(avro)的方法,否则我本可以使用AvroParquetWriter将Pojos写入Parquet文件。有什么建议吗? 最佳答案 如果你想通过avro,你有两个选择:1)让avro生成您的pojo(参见教程here)。生成的pojo扩展了SpecificRecord,然后可以将其与AvroParquetWr

hadoop - 如何将 spark rdd 保存到 avro 文件

我正在尝试将rdd保存到avro格式的文件中。这是我的代码的样子:valoutput=s"/test/avro/${date.toString(dayFormat)}"rmr(output)//deleteingthepathrdd.coalesce(64).saveAsNewAPIHadoopFile(output,classOf[org.apache.hadoop.io.NullWritable],classOf[PageViewEvent],classOf[AvroKeyValueOutputFormat[org.apache.hadoop.io.NullWritable,Pag

hadoop - 使用架构文件创建一个 Parquet 支持的 Hive 表

Clouderadocumentation,展示了一种简单的方法来“使用Avro模式文件创建Avro支持的Hive表。”这很好用。我想对Parquet支持的Hive表做同样的事情,但是相关的documentation在这种情况下,列出了每个列类型,而不是从模式中读取。是否有可能以与Avro数据相同的方式从模式中读取Parquet列? 最佳答案 目前,答案似乎是否。Hive有一个Unresolved问题。https://issues.apache.org/jira/browse/PARQUET-76这个问题最近很活跃,所以希望Hive

java - Oozie:从 Oozie <java> 操作启动 Map-Reduce?

我正在尝试使用在Oozie工作流中执行Map-Reduce任务行动。O'Reilley的ApacheOozie(IslamandSrinivasan2015)指出:Whileit’snotrecommended,JavaactioncanbeusedtorunHadoopMapReducejobsbecauseMapReducejobsarenothingbutJavaprogramsafterall.ThemainclassinvokedcanbeaHadoopMapReducedriverandcancallHadoopAPIstorunaMapReducejob.Inthatmo

python - spark 1.3.0、python、avro 文件、在 spark-defaults.conf 中设置的驱动程序类路径,但从属设备看不到

我正在使用带有python的spark1.3.0。我有一个使用以下命令读取avro文件的应用程序:conf=NonerddAvro=sc.newAPIHadoopFile(fileAvro,"org.apache.avro.mapreduce.AvroKeyInputFormat","org.apache.avro.mapred.AvroKey","org.apache.hadoop.io.NullWritable",KeyConverter="org.apache.spark.examples.pythonconverters.AvroWrapperToJavaConverter",

hadoop - java.io.IOException : Not a data file 异常

我正在处理一堆存储在HDFS嵌套目录结构中的avro文件。这些文件存储在年/月/日/小时格式的目录结构中。我写了这个简单的代码来处理sc.hadoopConfiguration.set("mapreduce.input.fileinputformat.input.dir.recursive","true")valrootDir="/user/cloudera/rootDir"valrdd1=sc.newAPIHadoopFile[AvroKey[GenericRecord],NullWritable,AvroKeyInputFormat[GenericRecord]](rootDir)

hadoop - Parquet-MR AvroParquetWriter - 如何将数据转换为 Parquet(使用特定映射)

我正在开发一种工具,用于将数据从本地格式转换为Parquet和JSON(用于Spark、Drill和MongoDB的不同设置),使用带有特定映射的Avro作为垫脚石。我必须支持定期在客户端机器上转换新数据,这就是为什么我尝试使用(Avro|Parquet|JSON)开关编写自己的独立转换工具,而不是使用Drill或Spark或其他工具作为转换器如果这是一次性工作,我可能会这样做。我将整个事情都基于Avro,因为这似乎是在一个引擎盖下转换为Parquet和JSON的最简单方法。我使用特定映射从静态类型检查中获益,编写了一个IDL,将其转换为schema.avsc,生成类并使用特定构造函数

hadoop - 如何使用 AVRO org.apache.avro.mapreduce 接口(interface)进行编程?

我所有的程序都是用hadoop的新MR1接口(interface)(org.apache.hadoop.mapreduce)编写的,所以我也想使用avro的新org.apache.avro.mapreduce。但这对我不起作用。该程序接受avro数据的输入并输出相同的数据。我的程序背后的主要思想是根据avro包装的键/值对hadoop的Mapper和Reducer进行子类化。这是我的工作驱动程序的一部分:AvroJob.setInputKeySchema(job,NetflowRecord.getClassSchema());AvroJob.setOutputKeySchema(job