映射在EMR成功运行时减少作业但在S3上没有输出数据

时间:2017-06-08 09:10:58

标签: hadoop amazon-s3 hive amazon-emr

我在EMR主控主机上运行MR作业。 我的输入文件在S3中,并通过Hcatalog将输出设置为Hive中的表。 作业运行成功,我确实看到reducers输出行,但看到S3新分区文件夹,我只能看到MR 0字节SUCCESS文件,但没有实际的数据文件。 注意 - 当reducer阶段开始时,我确实看到文件写入到临时文件夹中的S3,但似乎最后一个操作将文件抛出到某处。 我没有在MR日志中看到任何错误。

相关的MR驱动程序代码:“

  

Job job = Job.getInstance();

     

job.setJobName(“构建事件”);

     

job.setJarByClass(LoggersApp.class);

     

job.getConfiguration()。set(“fs.defaultFS”,“s3:// my-bucket”);

     

//设置输入路径Path [] inputPaths =“s3上的文件”;

     

FileInputFormat.setInputPaths(job,inputPaths); //设置输入输出

     

format job.setInputFormatClass(TextInputFormat.class);

     

job.setOutputFormatClass(HCatOutputFormat.class);

     

_configureOutputTable(作业);

     

private void _setReducer(Job job){
  job.setReducerClass(Reducer.class);
  job.setOutputValueClass(DefaultHCatRecord.class); }

     

private void _configureOutputTable(作业作业)抛出IOException {
  OutputJobInfo jobInfo =

     

OutputJobInfo.create(_cli.getOptionValue( “蜂房DBNAME”),   _cli.getOptionValue(“output-table”),null); HCatOutputFormat.setOutput(job,jobInfo); HCatSchema架构=   HCatOutputFormat.getTableSchema(job.getConfiguration());

     

HCatFieldSchema partitionDate = new HCatFieldSchema(“date”,   TypeInfoFactory.stringTypeInfo,null); HCatFieldSchema

     

partitionBatchId = new HCatFieldSchema(“batch_id”,

     

TypeInfoFactory.stringTypeInfo,null);

     

schema.append(partitionDate); schema.append(partitionBatchId);

     

HCatOutputFormat.setSchema(job,schema);       }

任何帮助?

0 个答案:

没有答案