削減側で2つのテーブルを結合するMapReduceプログラムを実行しました。小さなファイルで試してみましたが、うまくいきました。しかし、大きなファイル(80GBおよび60GB)でプログラムを実行しようとすると、次の行でIndexOutOfBoundsExceptionが発生して失敗します。if(!(fields [8])。equals( "")){and parse(record.toString());
private String BAN;
public void parse(String record) {
String[] fields = record.split("\\|");
if (fields.length > 100) {
if (!(fields[0]).equals("")){
BAN = fields[0];
}
}
else if(fields.length<40 && fields.length>0){
if (!(fields[8]).equals("")){
System.err.println("element = "+fields[8]);
}
}
}
public void parse(Text record) {
parse(record.toString());
}
public String getStationId(){
return "BAN = "+BAN;
}
この例外は、配列に9番目の要素がないことを意味しますが、その理由はわかりません。そのようなプログラムをデバッグするのは非常に困難です。
お願い助けて!