"1つのキーと値の組をマッピングして中間データを生成するジョブを行うマップMap手段と、該中間データを更に小さな値にセットするジョブを行うリデュースReduce手段、及び、与えられた教師データを格納する分散ファイル記憶手段を有し、大規模なデータを並列分散処理するためのデータ分析及び機械学習処理装置であって、前記Map手段または前記Reduce手段にジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含むパラメータ情報を検出し、前記分散ファイルシステムに格納するパラメータ検出手段と、前記Map手段、前記Reduce手段に新たなジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含む新パラメータ情報を検出し、該新パラメータ情報と前記分散ファイルシステムに格納されている前記パラメータ情報と比較し、パラメータに依存しない重複部分のジョブを統合するジョブ統合手段と、前記Map手段または前記Reduce手段を、統合されたジョブを重複部分を共有しながら実行させる共有実行手段と、を有することを特徴とするデータ分析及び機械学習処理装置。前記ジョブ統合手段は、前記Map手段または前記Reduce手段に対して新たなジョブが追加されると、該Map手段、または、該Reduce手段の実行前に、該ジョブを遅延キューに蓄積する遅延キュー制御手段と、新たに追加されたジョブと既に前記遅延キューに格納されたジョブのパラメータを比較し、利用するMap手段名またはReduce手段名が同じものがある場合は、ジョブを統合し、所定のキュー保持時間が経過すると、通常のキューに統合されたジョブを移行させる手段と、を含む請求項1記載のデータ分析及び機械学習処理装置。前記ジョブ統合手段は、前記分散ファイルシステムに格納されている前記パラメータ情報と前記新パラメータ情報を比較して、前記パラメータに依存しない重複部分がある場合は、代表する1つのジョブに対してその他のジョブのパラメータとの差分を追加する手段を含む請求項1または2記載のデータ分析及び機械学習処理装置。前記共有実行手段は、前記ジョブ統合手段で統合されたジョブの重複部分を共有しながら前記Map手段、または、前記Reduce手段を実行させ、パラメータに依存する処理部分に到達した時点で処理を分岐させる手段を含む請求項1記載のデータ分析及び機械学習処理装置。1つのキーと値の組をマッピングして中間データを生成するジョブを行うマップMap手段と、該中間データを更に小さな値にセットするジョブを行うリデュースReduce手段、及び、与えられた教師データを格納する分散ファイル記憶手段を有し、大規模なデータを並列分散処理する装置における、データ分析及び機械学習処理方法であって、パラメータ検出手段が、前記Map手段または前記Reduce手段にジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含むパラメータ情報を検出し、前記分散ファイルシステムに格納するパラメータ検出ステップと、ジョブ統合手段が、前記Map手段、前記Reduce手段に新たなジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含む新パラメータ情報を検出し、該新パラメータ情報と前記分散ファイルシステムに格納されている前記パラメータ情報と比較し、パラメータに依存しない重複部分のジョブを統合するジョブ統合ステップと、共有実行手段が、統合されたジョブを重複部分を共有しながら前記Map手段または前記Reduce手段を実行させる共有実行ステップと、を行うことを特徴とするデータ分析及び機械学習処理方法。前記ジョブ統合ステップにおいて、前記Map手段または前記Reduce手段に対して新たなジョブが追加されると、該Map手段、または、該Reduce手段の実行前に、該ジョブを遅延キューに蓄積する遅延キュー制御ステップと、新たに追加されたジョブと既に前記遅延キューに格納されたジョブのパラメータを比較し、利用するMap手段名またはReduce手段名が同じものがある場合は、ジョブを統合し、所定のキュー保持時間が経過すると、通常のキューに統合されたジョブを移行させるステップと、を行う請求項5記載のデータ分析及び機械学習処理方法。前記ジョブ統合ステップにおいて、前記分散ファイルシステムに格納されている前記パラメータ情報と前記新パラメータ情報を比較して、前記パラメータに依存しない重複部分がある場合は、代表する1つのジョブに対してその他のジョブのパラメータとの差分を追加する請求項5または6記載のデータ分析及び機械学習処理方法。前記共有実行ステップにおいて、前記ジョブ統合手段で統合されたジョブの重複部分を共有しながら前記Map手段、または、前記Reduce手段を実行させ、パラメータに依存する処理部分に到達した時点で処理を分岐させる請求項5記載のデータ分析及び機械学習処理方法。請求項1乃至4のいずれか1項に記載のデータ分析機械学習装置を構成する各手段としてコンピュータを機能させるためのデータ分析及び機械学習処理プログラム。機械学習処理は、事前に機械学習アルゴリズムに与える設定値次第で得られる処理結果の精度が大きく異なる場合があるため、設定値を調整しながら処理を複数回繰り返さなければ最良の結果を得ることができない。特に、MapReduceを利用して大規模なデータを対象とした処理を行う際に、例えば、機械学習ライブラリであるMahoutでは設定値の調整があまり考慮されないため、良い結果を得るために長時間に及ぶ処理を複数回行うことになり、非常に効率が悪い。上記の非特許文献1の技術は、複数回の処理において、各処理のデータ読み込み部分の共有化により、中間データ削減によるShuffleコストは削減できるが、MapReduceを提供するHadoopそのものには手を加えないため、粒度の小さい関数単位の処理の共有化ができないという問題がある。本発明は、上記の点に鑑みなされたもので、粒度の小さい処理の共有化ができないという問題を解決し、パラメータに依存しない重複部分を関数単位での共有化を可能とし、重複する処理を削減することが可能なデータ分析及び機械学習処理装置及び方法及びプログラムを提供することを目的とする。上記の課題を解決するために、本発明請求項1は、1つのキーと値の組をマッピングして中間データを生成するジョブを行うマップMap手段と、該中間データを更に小さな値にセットするジョブを行うリデュースReduce手段、及び、与えられた教師データを格納する分散ファイル記憶手段を有し、大規模なデータを並列分散処理するためのデータ分析及び機械学習処理装置であって、前記Map手段または前記Reduce手段にジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含むパラメータ情報を検出し、前記分散ファイルシステムに格納するパラメータ検出手段と、前記Map手段、前記Reduce手段に新たなジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含む新パラメータ情報を検出し、該新パラメータ情報と前記分散ファイルシステムに格納されている前記パラメータ情報と比較し、パラメータに依存しない重複部分のジョブを統合するジョブ統合手段と、前記Map手段または前記Reduce手段を、統合されたジョブを重複部分を共有しながら実行させる共有実行手段と、を有する。また、本発明請求項2は、請求項1の前記ジョブ統合手段に、前記Map手段または前記Reduce手段に対して新たなジョブが追加されると、該Map手段、または、該Reduce手段の実行前に、該ジョブを遅延キューに蓄積する遅延キュー制御手段と、新たに追加されたジョブと既に前記遅延キューに格納されたジョブのパラメータを比較し、利用するMap手段名またはReduce手段名が同じものがある場合は、ジョブを統合し、所定のキュー保持時間が経過すると、通常のキューに統合されたジョブを移行させる手段と、を含む。また、本発明請求項3は、請求項1または2の前記ジョブ統合手段に、前記分散ファイルシステムに格納されている前記パラメータ情報と前記新パラメータ情報を比較して、前記パラメータに依存しない重複部分がある場合は、代表する1つのジョブに対してその他のジョブのパラメータとの差分を追加する手段を含む。また、本発明請求項4は、請求項1の前記共有実行手段に、前記ジョブ統合手段で統合されたジョブの重複部分を共有しながら前記Map手段、または、前記Reduce手段を実行させ、パラメータに依存する処理部分に到達した時点で処理を分岐させる手段を含む。本発明請求項5は、1つのキーと値の組をマッピングして中間データを生成するジョブを行うマップMap手段と、該中間データを更に小さな値にセットするジョブを行うリデュースReduce手段、及び、与えられた教師データを格納する分散ファイル記憶手段を有し、大規模なデータを並列分散処理する装置における、データ分析及び機械学習処理方法であって、パラメータ検出手段が、前記Map手段または前記Reduce手段にジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含むパラメータ情報を検出し、前記分散ファイルシステムに格納するパラメータ検出ステップと、ジョブ統合手段が、前記Map手段、前記Reduce手段に新たなジョブが与えられると、該ジョブのパラメータの値、利用位置、利用元関数を含む新パラメータ情報を検出し、該新パラメータ情報と前記分散ファイルシステムに格納されている前記パラメータ情報と比較し、パラメータに依存しない重複部分のジョブを統合するジョブ統合ステップと、共有実行手段が、統合されたジョブを重複部分を共有しながら前記Map手段または前記Reduce手段を実行させる共有実行ステップと、を行う。また、本発明請求項6は、請求項5の前記ジョブ統合ステップにおいて、前記Map手段または前記Reduce手段に対して新たなジョブが追加されると、該Map手段、または、該Reduce手段の実行前に、該ジョブを遅延キューに蓄積する遅延キュー制御ステップと、新たに追加されたジョブと既に前記遅延キューに格納されたジョブのパラメータを比較し、利用するMap手段名またはReduce手段名が同じものがある場合は、ジョブを統合し、所定のキュー保持時間が経過すると、通常のキューに統合されたジョブを移行させるステップと、を行う。また、本発明請求項7は、請求項5または6の前記ジョブ統合ステップにおいて、前記分散ファイルシステムに格納されている前記パラメータ情報と前記新パラメータ情報を比較して、前記パラメータに依存しない重複部分がある場合は、代表する1つのジョブに対してその他のジョブのパラメータとの差分を追加する。また、本発明請求項8は、請求項5の前記共有実行ステップにおいて、前記ジョブ統合手段で統合されたジョブの重複部分を共有しながら前記Map手段、または、前記Reduce手段を実行させ、パラメータに依存する処理部分に到達した時点で処理を分岐させる。本発明請求項9は、請求項1乃至4のいずれか1項に記載のデータ分析機械学習装置を構成する各手段としてコンピュータを機能させるためのデータ分析及び機械学習処理プログラムである。上記のように、従来、粒度の小さい処理の共有化ができないという問題に対し、本発明は、MapReduce処理中でのパラメータの利用順序、利用関数を検知し、次にその情報を利用して複数パターンのパラメータを持つ処理を同時に行う場合に、パラメータに依存しない重複部分を関数単位で統合することで、重複する処理を削減することが可能となり、MapReduce処理の高速化を図ることができる。つまり、本発明では、最低限2回のMapReduce処理が必要になるが、1回目では、ジョブの統合などは行わずに、パラメータ情報の検知のみを行い、2回目以降において、複数ジョブの統合を行うことで、処理量の削減を行うことができる。以下図面と共に、本発明の実施の形態を説明する。[第1の実施の形態]図1は、本発明の第1の実施の形態におけるシステム構成を示す。本発明の構成は、図26と同様に、ネットワークによって相互に接続された複数のコンピュータを用い、図26と同様の流れを処理が行われる分散処理フレームワークを行うシステムである。本実施の形態では、MapReduce処理において、制御部Controller50が、集計用データ作成部Mapper20、集計部Reducer40に対して検知を指示すると、集計用データ作成部Mapper20、集計部Reducer40は、パラメータに関する情報を検知し、分散化ファイルシステム10に保存する。Controller50は、ジョブ開始時に、Mapper20、Reducer40に対してパラメータの情報の検知を指示する。また、遅延キューを利用することによるMapper20、Reducer40及び入力データが共通である複数のジョブの統合を行う。さらに、ジョブ開始時に、統合されたジョブパラメータ情報を利用して、Mapper20、Reducer40の処理のうち、どこまでを共有化できるかを判定する。判定した共有範囲をMapper20、及びReducer40に指示する。Mapper20、Reducer40は、Controller50から指示があると、パラメータ情報の検知を実行する。また、Controller50からの共有化の指示に応じて、共有可能な範囲は1回、以降はパラメータに応じた処理に分岐するように、集計用データ作成Mapping、集計処理Reducingを実行する。図2は、本発明の第1の実施の形態における全体動作のフローチャートである。ステップ300データが入力されると、Mapper20、Reducer40はMapReduce処理を行い、その処理の過程において、制御部50は、Mapper20とReducer40に、利用されるパラメータの値、当該パラメータの利用位置、利用元関数の検知を指示し、Mapper20、Reducer40は指示された検知処理を行い、分散ファイルシステム10、または、ローカルに保存する。当該処理は、請求項1のパラメータ検出手段に対応する。ステップ310MapReduce処理の過程において、Controller50は、ジョブに与えられたパラメータと、ステップ300で分散ファイルシステム10に格納されているパラメータに関する情報と照合し、中間データをキャッシュとして保存すべきかを判断し、保存する場合には、Mapper20、Reducer40に共有範囲を通知し、中間データを分散ファイルシステム10またはローカルに保存するよう指示する。これにより、Mapper20、Reducer40は、Controller50からの指示に応じて中間データを保存する。中間データを保存する際には、通常の出力とは別に出力する。次に、上記のステップ310の処理を詳細に説明する。図3は、本発明の第1の実施の形態におけるジョブの統合共有化による処理量を削減したMapReduceを利用する処理のフローチャートである。図4は、ジョブの統合方法を示しており、上段は従来の、下段は本発明のキューの利用方法を示している。ステップ600ステップ100と同様に、MapReduceジョブを生成する。ステップ610ステップ110と同様に、生成したジョブにパラメタータを設定する。ステップ620パラメータが付与されたジョブを遅延キューに追加する。その際、図4に示すように、新しく追加するジョブとすでに遅延キュー内にある各ジョブとパラメータを比較し、入力データと利用するMapper名、Reduce名と同じものがあった場合はそのジョブに統合する。図4の例では、新しく追加するジョブ7の入力データが、既に遅延キューに入っているジョブ6または、ジョブ4、5と同じである場合は、遅延キューに統合する。当該処理は請求項1のジョブ統合手段に相当する。遅延キューに追加してからユーザが指定した時間が経過したジョブは順次遅延キューから出力され、通常のキューに戻される。ステップ630ステップ620で統合済みのジョブを、パラメータに依存しない重複する部分を共有化しながら処理を行う。これにより、統合前の複数のジョブを実行したときと同じ結果を得る。当該処理は請求項1の共有実行手段に相当する。ステップ640ステップ130と同様に、MapReduce処理を行う。ステップ650ステップ140と同様の処理を行う。上記のように、本実施の形態によれば、MapReduce処理において、パラメータに関する情報を検出し、分散ファイルシステム10に保存し、新たなMapReduceジョブが追加された場合に、すぐにMapReduce処理を開始せずに、遅延キューに蓄積し、入力データやMapper20、Reducer40は同じであるが、パラメータ値の異なる複数パターンのMapReduceジョブが同時に入力されたことを検知してジョブを統合することで、重複部分の処理を削減することができる。[第2の実施の形態]本実施の形態では、第1の実施の形態のステップ300におけるパラメータ情報検出方法パラメータ検出手段について詳述する。図5は、本発明の第2の実施の形態におけるパラメータ情報を検知するMapReduceを利用した処理のフローチャートである。ステップ400ステップ100と同様に、MapReduceジョブを生成する。ステップ410ステップ110と同様に、ジョブにパラメータを与える。ステップ420各ノードに割り当てられた入力データに対し、図27と同様のMapReduce処理を行うが、その過程で、Controller50の指示により、Mapper20やReducer40は、利用するパラメータの値、利用位置、利用元関数を検知し、分散ファイルシステム10に保存する。ステップ430ステップ130と同様の処理を行う。本発明では、最低限2回のMapReduce処理を必要とし、1回目では、ジョブの統合などは行わずに、パラメータ情報の検知のみを行う。2回目において、複数ジョブの統合を行うことで、処理量の削減を行っている。上記のステップ420について詳細に説明する。図6は、本発明の第1の実施の形態におけるパラメータ情報を検知するMapReduce処理のフローチャートであり、図7は、パラメータ検知のイメージを示す。ステップ500各ノードに割り当てられた入力データに対し、Mapper20はユーザが定義した任意のMap処理を行う。各ノードが自らに割り当てられた分散データを先頭から順に1行に対して1回、ユーザが定義したMap関数が適用される。Controller50は、その間Mapper20においてパラメータが利用される際に、当該Mapper20が利用したMapperクラス名、関数、パラメータ名、パラメータ値を抽出して分散ファイルシステム10に保存し、重複範囲の特定に利用する。ステップ510Combiner60は、Map処理により生成されたKeyValueの形式の中間データのうち、キーが共通のものを収集しKey1つに対してリスト状のValue形式、ユーザが定義した任意のCombine処理を行い、中間データ記憶部30に格納する。また、パラメータが利用される際に、利用したCombineクラス名、関数、パラメータ名、パラメータ値を分散ファイルシステム10に保存し、以降の重複範囲の特定に利用する。ステップ520Shuffle部70は、ステップ510で中間データ記憶部30に出力された中間データのShuffle処理を行う。ステップ530Reducer40は、ステップ520の処理で得られたKeyValue形式の中間データに対して、ユーザが定義した任意のReduce処理を行う。その間、パラメータが利用される際に、利用したReduceクラス名、関数、パラメータ名、パラメータ値を分散ファイルシステム10に格納する。上記のように、本実施の形態では、MapReduce処理に使われるMapperクラス、Reducerクラスの名前、事前に与えるパラメータ名とパラメータ値等が、MapReduce処理中のどのような順序で、どの関数内で利用されるかを検出し、その情報を分散ファイルシステム10に保存することで、以後の処理において利用できるようにする。[第3の実施の形態]本実施の形態では、複数処理を統合しジョブ統合手段、重複処理を共有化する共有実行手段処理について説明する。図8は、本発明の第3の実施の形態における遅延キュー追加時の処理のフローチャートである。ステップ700Controller50は、分散ファイルシステム10に格納されている既存のジョブの持つパラメータと新たに追加されたジョブのパラメータを比較して、入力データが同じであるかどうか、また、処理に利用するMapper20とReducer40が同じかどうかを判定し、同じジョブがあれば、統合可能なジョブとする。ステップ710既存のジョブの持つパラメータと新たに追加されたジョブのパラメータを比較し、代表する一つのジョブに対して、その他のジョブのパラメータとの差分を追加することで、パラメータの合成を行い、遅延キューに追加する。図9は、本発明の第3の実施の形態における統合処理のイメージを示す。同図に示すように、ジョブ1のConfigurationとジョブ2のConfigurationの内容を比較すると、inputdir、mapclass、reduceclass、param2が同じである。これらを1つに合成し、ジョブ1,2のConfigurationに示すように、異なるparam1のみを追記する。統合されたジョブを統合前のものが相互に影響しないように、かつ、統合前のジョブ間で重複するパラメータに依存しない部分を共有化しながら実行する。そのために、Mapなどの関数別にどのジョブを共有するのかを示す共有グループを生成し、それに従って必要な数だけ統合前の元のMapperやReducerを生成し、それらに処理を実行させ、処理結果を共有する。図10は、本発明の第3の実施の形態における統合ジョブMapReduce処理のフローチャートである。当該処理は、図3のステップ630に対応する。ステップ800Controller50は、遅延キューに蓄積されたジョブの中で、指定した遅延時間が経過している統合されたジョブを取得する図4の下段の保持時間切れによる取り出しを参照。その際、ジョブが持つパラメータを元に、予め第2の実施の形態において分散ファイルシステム10に保存していた各パラメータがMapper20、Reducer40など、どの位置の関数で利用されるかの情報を参照することで、関数毎に処理の共有グループを生成してパラメータとして追加しておく。詳しくは、図11に示すように、1まず、Mapperクラス名MapClassA、Reducerクラス名RedClassB、差分パラメータparam1をもとに分散ファイルシステム10に蓄積した情報を参照する。2差分パラメータがMapReduce処理でどの位置で利用されるのかを判定する。図11の例では、pram1はReduce処理で使われることがわかる。3パラメータに依存しない、重複する処理のあるジョブをMap、Reduce単位でグルーピングする。図11の例では、Map処理では、1,2がグルーピングされる。なお、このとき、それより以前の共有化グループも考慮するものとする。また、Reduce処理では、1、2となりグループ化されない。4共有化グループの情報をConfigurationに追加する。ステップ810Controller50は、Map処理の共有グループの数だけ元のMapperを生成し、各Mapper20に、ステップ200と同様のMap処理を行わせる。ステップ820Controller50は、ステップ810と同様に、必要数のCombiner60を生成し、各Combiner60にステップ210と同様の処理を行わせる。ステップ830Controller50は、ステップ810と同様に、必要数のReducer40を生成し、各Reducer40にステップ230と同様の処理を行わせる。図12は、本発明の第3の実施の形態における統合処理の例である。同図に示すように、3パターンのジョブ1、2、3を統合する場合に、Mapperの共有化グループは2,3であり、Reducerの共有化グループがない場合に、Mapperでは、共有化グループ2,3のジョブとジョブ1をパラレルに実行し、中間データを出力する際にタグを付与する。Reducerは共有化グループがないので、ジョブ2、ジョブ3を順に行い、それぞれ処理結果を出力する。このように、本実施の形態では、MapReduceのジョブが新しく追加されたときに、すぐに処理を開始しないよう、遅延評価キューを利用し、キューに入力データやMapperクラス、Reduceクラスが同じでも、複数のパターンの異なるパラメータを持つジョブが与えられたとき、各ジョブの持つパラメータ値を比較し、代表する一つのジョブに対して、その他のジョブのパラメータとの差分を追加し、統合する。そして、第2の実施の形態で分散ファイルシステム10に格納された情報を利用して、パラメータに依存しない重複する関数を抽出し、統合されたジョブを重複部分を共有しながら実行し、パラメータ依存となった時点で処理を分岐させることによって重複部分の処理量を削減する。以下、本発明をオープンソース分散システムのHadoopに適用した例を示す。以下では、Hadoopにおいて、パラメータは具体的にはConfigurationクラスを指す。Configurationクラスは、Hadoopによる一連のMapReduce処理の流れの中で、Hadoopそのもののパラメータ、ユーザが定義したMapper、Reducerを指定するパラメータ、MapperやReducer等で利用される変数等のパラメータなど、あらゆるパラメータを区別なく格納、管理するためのクラスであり、MapReduceに関わる様々なクラスがConfigurationクラスを継承あるいはConfigurationクラスを保持する形で利用する。パラメータは、名前:値の形でConfigurationクラスに格納され、必要とする型に応じたメソッドにパラメータの名前を与えると、その型の値が応答される。HDFSやローカルファイルに出力するために、XML形式に変換するメソッドを持つ。ジョブjobまたはJobConfは、Hadoopにおいて、具体的にはJobクラス、もしくは、JobConfクラスを指す。HadoopによるMapReduce処理を開始する際、ジョブを生成し、ジョブが提供する各種メソッドを用いて処理に利用するMapperクラスやReduceクラスなどを与え、開始メソッドによってMapReduce処理を開始することができる。Configurationクラスを内包し、与えられたパラメータは基本的に全てConfigurationに格納する。なお、後述するJobTrackerは前述の実施の形態における制御部Controller50に対応する。図13は、HadoopによるMapReduce処理開始時の各ノードの動作を示す。同図に示すシステムは、JobClient1002、MapReduceアプリケーション1001を有するクライアントノード1000、JobTracker1011を有するJobTrackerノード1010、TaskTracker1021、MaporReduceタスク1022を有するTrackTrackerノード1020から構成される。まず、一般的なクライアントノード1000の動作を説明する。図14は、クライアントノードの一般的な処理のフローチャートである。ステップ1100Hadoopに含まれるJobクラスのインスタンスの生成時に、XML形式の初期パラメータが読み込まれ、Configurationクラスとしてジョブに与えられる。ステップ1110MappkerReducerKeyValueクラスなどのHadoopが必要とするパラメータや、処理の途中に利用する変数の初期値などのパラメータをジョブに与えるジョブが保持するConfigurationにパラメータを与える。ステップ1120入力データの場所や実行時にユーザが変更可能なパラメータをコマンドライン引数の解析などによって取得し、ジョブに与えるジョブが保持するConfigurationにパラメータを与える。ステップ1130クライアントノード1000は、JobClient1002を利用してJobTracker1101が動作しているサーバから新規のジョブIDを取得し、ジョブに与える。ステップ1140ステップ1130で取得したジョブIDを元にした分散ファイルシステム1030上の所定の場所パスに、ステップ1100,1110、1120によって生成され、設定値が付与されたジョブをXMLとして出力するまた、入力データを示すファイルも所定の場所に出力する。ステップ1150クライアントノード1000は、JobClient1002を利用して新しいジョブの追加をJobTracker1011に通知する。ステップ1160JobTracker1011において追加されたジョブが実行中ジョブとなり、キューに蓄積される。適宜キューを元にMapReduce処理が実行され、処理のログを標準出力に表示しながら終了まで待機する。ステップ1170MapReduce処理の結果を取得し、ユーザが定義した任意の処理を行う。上記のステップ1150のジョブ追加時の一般的な処理としては、ジョブIDに基づいてジョブの初期化を行い、実行ジョブJobInProgressを生成し、実行ジョブをキューに格納していた。これに対し、本発明は、以下のような処理を行う。図15は、本発明の一実施例のジョブ追加時の処理のフローチャートS1150である。ステップ1300ジョブIDを元にしてジョブの初期化を行い、実行ジョブJobInProgressを生成する。ステップ1310ジョブが保持するConfigurationを参照し、パラメータ検知設定が有効か判断する。有効である場合はステップ1320に、無効である場合はステップ1330に移行する。ステップ1320設定済みのMapper、Reducerは別の設定名として退避し、パラメータ検知用のMapper、Reducerを入れ替える。また、入れ替え済みのConfigurationの内容を分散ファイルシステム1030上に保存されているXMLにも反映する。ステップ1330ユーザによる明示的なキャッシュ有効指定がある場合は、ステップ1331に移行し、また、MapperReducerクラス名、入力データ名、パラメータ名を用いて分散ファイルシステム1030上に蓄積されたパラメータの利用クラス、関数の情報を検索し、Mapperがパラメータに依存しない場合や、依存していても同じパラメータ値をユーザが指定する回数以上利用している場合には、ステップ1331に移行する。それ以外はステップ1340に移行する。ステップ1331実行ジョブを通常のキューではなく、遅延キューに追加し、処理を終了する。ステップ1340実行ジョブを通常のキューに追加する。次に、上記のステップ1331の遅延キューに実行ジョブを追加する処理を説明する。図16は、本発明の一実施例の遅延キューにジョブを追加するときの処理のフローチャートである。ステップ1400TaskTrackerノード1020は、JobTracker1101から追加された実行中ジョブを取得し、そのジョブが保持している設定を取り出す。ステップ1410追加されたジョブの設定SX00の出力を参照し、遅延キュー内にある全てのジョブの設定と比較して、入力データ、Mapperクラス、Combinerクラス、Reducerクラスが共通であるジョブがあるかどうか判定し、統合可能であれば、そのジョブをキューから一旦除去する。ステップ1420ステップ1400とステップ1410の出力の設定値を比較し、値の違うものがある場合は、SX10の出力に対して差分としてその値を付加する。ステップ1430ジョブにユーザが指定した待機時間を付与し、遅延キューに追加する。上記のステップ1430により遅延キューに追加された遅延キューのジョブの取り出し方法について説明する。図17は、本発明の一実施例の遅延キューのジョブ取り出しスレッドの処理のフローチャートである。ステップ1500JobTrackerノード1010のジョブスケジューラを利用して、遅延キューの中に待機時間がすでに経過しているジョブがあるかどうか判定し、ある場合はそのジョブを取り出す。ステップ1510設定済みのMapper、Reducerは別の設定名として退避し、パラメータ検知用のMapper、Reducerに入れ替える。ステップ1520分散ファイルシステム1030上に保存されているパラメータの利用されるクラス、順序、関数の情報を、ステップ1510の出力が保持しているConfigurationの内容クラス名を利用して参照し、統合可能な関数とジョブ番号をConfigurationに与える。ステップ1530ステップ1520の出力を通常のキューに追加する。ステップ1540ユーザが指定した時間だけスレッドを待機させた後、遅延キュースレッドの終了フラグが有効か否かを判定する。有効である場合は処理を終了する。次に、JobTrackerノード1010内のジョブスケジューラの処理について説明する。図18は、本発明の一実施例のJobTrackerのジョブスケジューラの処理のフローチャートである。ステップ1600ジョブスケジューラは、キューの中に実行ジョブがあるかどうかを判定する。ステップ1610キューから実行ジョブを取得する。ステップ1620実行ジョブを元にして分散ファイルシステム1030の適切な場所からジョブのリソースを取得し、必要な数のMapタスク、Reduceタスクを生成する。ステップ1630終了判定を行い、終了フラグがない場合はステップ1600に移行し、終了フラグがある場合は当該処理を終了する。次に、TaskTrackerノード1020のTaskTracker1021の処理を説明する。図19は、本発明の一実施例のTaskTrackerのタスク取得ループ部分の処理のフローチャートである。ステップ1700TaskTracker1021は、JobTracker1011に対して、自らの生存を確認させるためにハートビートHeatBeatを送出し、JobTracker1011からそれに対する応答を受け取る。ステップ1710TaskTracker1021は、ハートビートに対する応答にタスクが含まれているかを判定する。含まれている場合はステップ1720に移行し、含まれていない場合はステップ1700に移行する。ステップ1720タスクがMapタスクであるかを判定し、Mapタスクである場合はステップ1711に移行し、それ以外である場合はステップ1730に移行する。ステップ1711Mapタスク1022において与えられたMapタスクを実行し、ステップ1700に移行する。ステップ1730タスクはReduceタスクであるかを判定し、Reduceタスクである場合は、ステップ1731に移行する。それ以外の場合は、ステップ1740に移行する。ステップ1731Reduceタスク1022でReduceタスクを実行する。ステップ1740終了フラグの有無を調べ、終了フラグが立っていれば処理を終了し、立っていなければステップ1700に移行する。次に、上記のステップ1711、1731のMapタスク、Reduceタスクの開示時の処理を説明する。図20は、本発明の一実施例のタスク開始時の処理のフローチャートである。ステップ1800MaporReduceタスク1022は、パラメータ、ジョブの進捗状況Status、入出力などを含むContextクラスをタスクに応じて生成する。ステップ1810MapperクラスまたはReducerクラスに応じたクラスを生成する。ステップ1820生成したContextクラスをMapperクラスまたはReduceクラスに与え、実行する。上記のステップ1820におけるMapperの処理を説明する。通常、Mapperでは、事前処理Setup、Map処理、終了処理Cleanupに関しては、ユーザがMapperクラスを継承したクラスを自由にプログラミングすることになる。Setup、Map、Cleanupの各関数内でパラメータを利用する場合は、全てContextクラスが保持しているConfigurationクラスにアクセスして取得する。これに対して、本発明は、図20のステップ1820について、以下のような処理を行う。図21は、本発明の一実施例のパラメータ検知用Mapperの処理のフローチャートである。ステップ2100Mapタスク1022は、Contextクラスが保持するConfigurationクラスを取り出し、それをパラメータが利用されたクラス、関数、順序を検知するためのConfigurationに入れ替える。ステップ2110Mapperクラスの名前をConfigurationから取得し、通常のMapperクラスを生成する。ステップ2120ユーザの定義した任意の事前処理のみを行う検知が容易な関数名。ここで、Mapperの中の関数名をそれぞれMapper内、Reducer内のものであることが明示的にわかるような関数名検知が容易な関数名にしておくものとする。ステップ2130入力の次の1行に対してユーザの定義した任意のMap処理のみを行う検知が容易な関数名。ステップ2140図19のステップ1710で読み込んだ行がデータの最終行であるかを判定し、最終行である場合はステップ2150に移行し、最終行でない場合はステップ2130に移行する。ステップ2150ユーザの定義した任意の終了処理のみを行う検知が容易な関数名。次に、ステップ1800で生成された検知用コンテキストに対してパラメータを要求する場合の処理を説明する。図22は、本発明の一実施例の検知用Configurationクラスのパラメータ呼び出し時の処理のフローチャートである。ステップ2200TaskTracker1021からの指示により、Java登録商標の機能であるStackTraceを用いて当該関数を呼び出した関数を辿り、呼び出し元のMapperクラス名と関数名を検知する。ステップ2210分散ファイルシステム1030上にステップ2200の出力を、呼び出し元クラス名、順序数値、関数名、パラメータ名をディレクトリ名、値をファイル名、頻度を内容としてファイルを生成し、分散ファイルシステム1030に出力する。ステップ2220保持しているプロパティクラスから、パラメータ名をキーとして取得し、呼び出されたメソッドに応じて適切な型に変換する。次に、図20のステップ1820の検出用Reducer処理について説明する。図23は、本発明の一実施例の検知用Reducerの処理のフローチャートである。ステップ2400Reduceタスク1022は、TaskTracker1021からReducerタスクで利用するconfigurationを検知用のものに入れ替える指示があると、Contextクラスが保持するConfigurationクラスを取り出し、それをパラメータが利用されたクラス、関数、順序を検知するためのConfigurationに入れ替える。ステップ2410Reducerクラスの名前をConfigurationから取得し、通常のReduceクラスを生成する。ステップ2420ユーザが定義した任意の事前処理のみを行う。ここで、Reducerの中の関数名をReducer内のものであることが明示的にわかるような関数名検知が容易な関数名にしておくものとする。ステップ2430割り当てられた中間データKey、Valueに対してReduce処理を行う検知が容易な関数名。ステップ2440ユーザの定義した任意の終了処理のみを行う検知が容易な関数名。次に、図20のステップ1820において、MaporReduceタスク1022が統合ジョブを行うMapperの処理を説明する。図24は、本発明の一実施例の統合ジョブ処理を行うMapperの処理のフローチャートである。ステップ2500TaskTrackerノード1020のTaskTracker1021において、Contextクラスが持つConfigurationクラスを参照し、そこに格納されている共有化可能な関数の情報により、事前処理、Map処理、終了処理の各段階での共有化グループを表すリストを生成し、Mapperタスク1022に出力する。ステップ2510Mapperタスク1022は、ステップ2500の出力より共有化グループの数だけ本来のMapperを生成する。ステップ2520本来のMapperそれぞれに事前処理を行わせる。ステップ2530ステップ2510の出力に対して、入力の次の1行に対してユーザの定義した任意のMap処理のみを行わせる。ステップ2540ステップ2530で読み込んだ行がデータの最終行であるかどうかを判定し、最終行である場合はステップ2550に移行し、最終行でない場合はステップ2530に移行する。ステップ2550ユーザの定義した任意の終了処理のみを行わせる。次に、図20のステップ1820において、MaporReduceタスク1022の統合ジョブを説明する。図25は、発明の一実施例の統合ジョブ処理を行うReducerの処理のフローチャートである。ステップ2600TaskTrackerノード1020のTaskTracker1021は、Contextクラスが持つConfigurationクラスを参照し、そこに格納されている共有化可能な関数の情報により、事前処理、Reduce処理、終了処理の各段階での共有化グループを表すリストを生成し、Reducerタスク1022に出力する。ステップ2610ステップ2600の出力より共有化グループの数だけ本来のReducerを生成する。ステップ2620本来のReducerそれぞれに事前処理を行わせる。ステップ2630ステップ2610の出力に対して、入力の次の1行に対してユーザの定義した任意のReduce処理のみを行わせる。ステップ2640ステップ2630で読み込んだ行がデータの最終行であるかどうかを判定し、最終行である場合はステップ2550に移行し、最終行でない場合はステップ2530に移行する。ステップ2650ユーザの定義した任意の終了処理のみを行わせる。なお、上記の図1に示す構成要素の動作をプログラムとして構築し、データ分析機械学習装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。また、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々変更応用が可能である。"