使用S3作为MapReduce作业输入

时间:2012-07-20 00:28:32

标签: amazon-s3 mapreduce

我有一个MR工作来读取亚马逊S3上的文件并处理本地hdfs上的数据。文件是压缩文本文件为.gz。我试图设置如下的工作,但它不会工作,任何人都知道可能是什么问题?我是否需要添加额外的步骤来首先解压缩文件?

谢谢!

String S3_LOCATION = "s3n://access_key:private_key@bucket_name"

protected void prepareHadoopJob() throws Exception {    

    this.getHadoopJob().setMapperClass(Mapper1.class);
    this.getHadoopJob().setInputFormatClass(TextInputFormat.class);

FileInputFormat.addInputPath(this.getHadoopJob(), new Path(S3_LOCATION));

this.getHadoopJob().setNumReduceTasks(0);
this.getHadoopJob().setOutputFormatClass(TableOutputFormat.class);
this.getHadoopJob().getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, myTable.getTableName());
this.getHadoopJob().setOutputKeyClass(ImmutableBytesWritable.class);
this.getHadoopJob().setOutputValueClass(Put.class);
}

1 个答案:

答案 0 :(得分:0)

通常情况下,您不需要首先解压缩文件,但如果没有错误消息的任何详细信息,很难确定出现了什么问题