GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

Boa noite galera,

Estou com dificuldade para entender o meu problema, sou novo em java. Poderiam me ajudar com a resolução desse problema, abaixo segue codigo+ erro.

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0
at br.com.jonathan.hadoop.ContaPalavras.ContaPalavrasDriver.main(ContaPalavrasDriver.java:22)


Codigo


package br.com.jonathan.hadoop.ContaPalavras;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;

public class ContaPalavrasDriver {

public static void main(String[] args) throws IOException,
        InterruptedException, ClassNotFoundException {

    // Captura o parâmetros passados após o nome da Classe driver.
    Path inputPath = new Path(args[0]);
    Path outputDir = new Path(args[1]);

    // Criar uma configuração
    Configuration conf = new Configuration(true);

    // Criar o job
    Job job = new Job(conf, "ContaPalavras");
    job.setJarByClass(ContaPalavrasDriver.class);

    // Definir classes para Map e Reduce
    job.setMapperClass(ContaPalavrasMapper.class);
    job.setReducerClass(ContaPalavrasReducer.class);
    job.setNumReduceTasks(1);

    // Definir as chaves e valor
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);

    // Entradas
    FileInputFormat.addInputPath(job, inputPath);
    job.setInputFormatClass(TextInputFormat.class);

    // Saidas
    FileOutputFormat.setOutputPath(job, outputDir);
    job.setOutputFormatClass(TextOutputFormat.class);

    // EXcluir saida se existir
    FileSystem hdfs = FileSystem.get(conf);
    if (hdfs.exists(outputDir))
        hdfs.delete(outputDir, true);

    // Executa job
    int code = job.waitForCompletion(true) ? 0 : 1;
    System.exit(code);

}

}

Exceção lançada: “Exceção de Índice de Matriz Fora dos Limites: 0” - Linha 22 da classe ContaPalavrasDriver, método main. Logo, é aqui:

Path inputPath = new Path(args[0]);

Creio que você deva testar para ver se o array args foi ‘carregado’, como por exemplo:

if(args.length == 2){
	Path inputPath = new Path(args[0]);
    Path outputDir = new Path(args[1]);
}
//