1

ここで最初の質問...そしてhadoopの学習...

過去 2 週間、Hadoop に関するすべてを理解しようと努めてきましたが、すべての丘の背後には山があるようです。

セットアップは次のとおりです。

  1. 多数 (100 万個) の小さな (<50MB) XML ファイル (XML にフォーマットされたドキュメント)。
  2. 各ファイルはレコード/レコードです
  3. 疑似分散 Hadoop クラスター (1.1.2)
  4. 古い mapred API を使用する (新しい API が必要なものをサポートする場合、変更される可能性があります)

XmlInputFormat ("Mahout XMLInputFormat") は、XML ドキュメント全体を

私の理解では、XmlInputFormat は、各ファイルが独自のレコードであることを保証します (ファイル/レコードごとに 1 つのタグが存在するため)。

私の問題は次のとおりです。Hadoop を使用してすべてのドキュメントを処理し、情報を検索してから、ファイル/レコードごとに、新しい xml タグが追加された新しい xml ドキュメントを書き直すか、出力したいと考えています。

読むことと学ぶことを恐れない

ここに私のドライバーがあります:

public static void main(String[] args) {
    JobConf conf = new JobConf(myDriver.class);
    conf.setJobName("bigjob");
    // Input/Output Directories
    if (args[0].length()==0 || args[1].length()==0) System.exit(-1);
    FileInputFormat.setInputPaths(conf, new Path(args[0]));
    FileOutputFormat.setOutputPath(conf, new Path(args[1]));

    conf.set("xmlinput.start", "<document>");
    conf.set("xmlinput.end", "</document>");

    // Mapper & Combiner & Reducer
    conf.setMapperClass(Mapper.class);
    conf.setReducerClass(Reduce.class);
    conf.setNumReduceTasks(0);

    // Input/Output Types
    conf.setInputFormat(XmlInputFormat.class);

    conf.setOutputFormat(?????);

    conf.setOutputKeyClass(????);
    conf.setOutputValueClass(????);


    try {
            JobClient.runJob(conf);
    } catch (Exception e) {
            e.printStackTrace();
    }
}
4

1 に答える 1