(57)【要約】【課題】分散処理システムにおける分散処理を適切に行うことができる情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法を提供すること。【解決手段】本願に係る情報処理装置は、ジョブ要求部と、出力制御部とを備える。ジョブ要求部は、入力データを分散処理する分散処理システムにジョブを実行させる。出力制御部は、ジョブに対する分散処理システムにおける過去の処理結果に応じた分割数で分散処理の処理結果を分割した複数の出力ファイルをジョブに対する出力データとして分散処理システムに生成させる。【選択図】図１
2018036885.tif 000002
【特許請求の範囲】
【請求項１】
入力データを分散処理する分散処理システムにジョブを実行させるジョブ要求部と、
前記ジョブに対する前記分散処理システムにおける過去の処理結果に応じた分割数で前記分散処理の処理結果を分割した複数の出力ファイルを前記ジョブに対する出力データとして前記分散処理システムに生成させる出力制御部と、を備える
ことを特徴とする情報処理装置。
【請求項２】
前記出力制御部は、
前記ジョブに対する前記分散処理システムの過去の処理結果を取得する情報取得部と、
前記情報取得部によって取得された前記過去の処理結果に応じた分割数に関する情報を決定する決定部と、
前記決定部によって決定した情報に基づく分割数で前記分散処理の処理結果を分割した複数の出力ファイルを前記ジョブに対する出力データとして前記分散処理システムに生成させる出力設定部と、を備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記出力データは、複数のレコードを含み、
前記決定部は、
前記出力ファイルのファイルサイズを目標サイズにする前記出力ファイルのレコード数を前記分割数に関する情報として決定し、
前記出力設定部は、
前記決定部によって決定されたレコード数と今回の前記分散処理の処理結果に含まれるレコードの総数とに応じた分割数で分割した出力ファイルを前記分散処理システムに生成させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、
過去の前記出力データに含まれる出力ファイルの平均ファイルサイズと平均レコード数とに基づいて、前記出力ファイルのレコード数を決定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記出力制御部は、
前記複数の出力ファイルをそれぞれ圧縮形式のデータとして前記分散処理システムに生成させる
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記ジョブ要求部は、
前記分散処理システムで分割されて生成される出力データの複数の分割データを前記入力データとして前記分散処理システムにジョブを実行させる
ことを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
前記入力データには、
ネットワーク上の異なるサービスのログデータまたは当該ログデータの前記分散処理システムにおける処理結果が含まれる
ことを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
請求項１〜７のいずれか一つに記載の情報処理装置と、
前記分散処理システムと、を備える
ことを特徴とする情報処理システム。
【請求項９】
分配された入力データをジョブに応じて分散処理する手順と、
前記ジョブに対する過去の前記分散処理の処理結果に応じた分割数で前記分散処理の処理結果を分割した複数の出力ファイルを前記ジョブに対する出力データとして生成する手順と、
をコンピュータシステムに実行させることを特徴とする情報処理プログラム。
【請求項１０】
コンピュータシステムが実行する情報処理方法であって、
入力データが分配された複数のサーバのそれぞれによって前記分配された入力データをジョブに応じて分散処理する工程と、
前記ジョブに対する過去の前記分散処理の処理結果に応じた分割数で前記分散処理の処理結果を分割した複数の出力ファイルを前記ジョブに対する出力データとして生成する工程と、を含む
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法に関する。
【背景技術】
【０００２】
近年、ネットワークの飛躍的な普及に伴い、収集されて集計や解析されるデータも膨大になってきている。そして、このような膨大なデータを集計や解析するシステムとして、複数のサーバにデータを分配して分散処理を実行する分散処理システムが利用されている。
【０００３】
かかる分散処理システムとして、ＨＤＦＳ（Hadoop  Distributed  File  System）とＭａｐＲｅｄｕｃｅとを基盤技術とするＨａｄｏｏｐ（登録商標）が知られている（例えば、特許文献１参照）。ＨＤＦＳは、複数のサーバにデータを分散して格納するファイルシステムであり、ＭａｐＲｅｄｕｃｅは、ＨＤＦＳと連携する分散並列処理フレームワークである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１９４８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した分散処理システムの分散処理によって生成された出力データを入力データとしてさらに分散処理システムによって処理することがある。このような場合、入力データとして用いられる出力データのファイルサイズが大きいと分散処理における処理時間が長くなり、分散処理を適切に行うことができないおそれがある。
【０００６】
本願は、上記に鑑みてなされたものであって、分散処理システムにおける分散処理を適切に行うことができる情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の情報処理装置は、ジョブ要求部と、出力制御部とを備える。前記ジョブ要求部は、入力データを分散処理する分散処理システムにジョブを実行させる。前記出力制御部は、前記ジョブに対する前記分散処理システムにおける過去の処理結果に応じた分割数で前記分散処理の処理結果を分割した複数の出力ファイルを前記ジョブに対する出力データとして前記分散処理システムに生成させる。
【発明の効果】
【０００８】
実施形態の一態様によれば、分散処理システムにおける分散処理を適切に行うことができる情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る分散処理システムにおける情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理システムの一例を示す図である。
【図３】図３は、図２に示すマスタサーバおよびスレーブサーバの構成例を示す図である。
【図４】図４は、図２に示すサービス提供サーバの構成例を示す図である。
【図５】図５は、図２に示すジョブ要求装置の構成例を示す図である。
【図６】図６は、図５に示す設定情報記憶部に記憶される設定情報テーブルの一例を示す図である。
【図７】図７は、実施形態に係る情報処理システムにおける情報処理の流れを示すフローチャートである。
【図８】図８は、プログラムを実行するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法を実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法が限定されるものではない。
【００１１】
〔１．分散処理システムにおける情報処理〕
図１を用いて、実施形態に係る分散処理システムにおける情報処理について説明する。図１は、実施形態に係る情報処理の説明図であり、かかる情報処理は、分散処理システム１によって実行される処理である。
【００１２】
図１に示すように、実施形態に係る分散処理システム１は、マスタサーバ２と、複数のスレーブサーバ３とを備え、かかるマスタサーバ２および複数のスレーブサーバ３はネットワーク４を介して互いに通信可能に接続される。
【００１３】
かかる分散処理システム１は、入力データを分散処理し、かかる分散処理の結果に応じた出力データを生成する。分散処理システム１は、例えば、Ｈａｄｏｏｐ（登録商標）と呼ばれるミドルウェアを実装した分散処理システムであり、分散ファイルシステムであるＨＤＦＳ（Hadoop  Distributed  File  System）と分散処理フレームワークであるＨａｄｏｏｐ−ＭａｐＲｅｄｕｃｅとを含んで構成される。
【００１４】
マスタサーバ２は、分散処理システム１全体を制御する。マスタサーバ２は、例えば、入力データを分割し、かかる分割したデータを複数のスレーブサーバ３へ分配する。各スレーブサーバ３は、マスタサーバ２から分配されたデータを内部の記憶部に記憶する。
【００１５】
また、マスタサーバ２は、各スレーブサーバ３に割り当てるタスクやジョブなどを管理し、複数種類のタスク（例えば、Ｍａｐ処理のタスクおよびＲｅｄｅｃｅ処理のタスク）を各スレーブサーバ３に実行させる。これにより、複数のスレーブサーバ３による分散処理が行われる。なお、各スレーブサーバ３は、これら複数種類のタスクを並列処理することができる。
【００１６】
スレーブサーバ３は、例えば、マスタサーバ２から分配されたデータを内部の記憶部から読み出し、かかるデータを用いてキーと値のペアデータである中間データを生成し、かかる中間データに基づき同一キー毎に値を集計する。分散処理システム１は、スレーブサーバ３による集計結果（複数のキーのそれぞれに対する集計値の情報）を分散処理の結果として生成する。
【００１７】
かかる分散処理システム１は、複数のスレーブサーバ３に分散配置されたデータを用いたジョブの実行が要求された場合、分散配置されたデータが各スレーブサーバ３によって分散処理され、かかる分散処理の結果に応じた出力データを生成する。
【００１８】
分散処理システム１は、分散処理の結果を分割した複数の出力ファイルを出力データとして生成することができる。本実施形態においては、分散処理システム１におけるジョブに対する過去の処理結果に応じた数で分割された複数の出力ファイルを出力データとして生成する。そのため、過去の処理結果を参考にした分割数の出力ファイルを生成でき、例えば、出力ファイルのファイルサイズが目標サイズ付近になるように出力ファイルを生成することができる。
【００１９】
これにより、例えば、分散処理システム１の出力データを入力データとして分散処理システム１に処理させる場合に、入力データのファイルサイズを抑えることができる。したがって、例えば、分散処理システム１による入力データの分割処理時間を低減でき、これにより、分散処理システム１の分散処理を適切に行うことができる。
【００２０】
また、分散処理システム１において出力データを圧縮形式で生成し、かかる圧縮形式の出力データを入力データとして分散処理システム１に処理させる場合であっても、入力データのファイルサイズを抑えることができる。そのため、入力データの解凍時間を抑えることができ、これにより、分散処理システム１の分散処理を適切に行うことができる。
【００２１】
また、出力データの圧縮形式によっては出力データを入力データとして分割して処理することが困難な場合がある。このような場合、入力データは分割されずに一つのスレーブサーバ３で処理されてしまい、かかる入力データの圧縮状態を解凍する処理に時間がかかってしまう。一方、実施形態においては分割が困難な圧縮形式の出力データであってもかかる出力データには複数の出力ファイルが含まれるため、複数のファイルが入力データとして入力され、これにより、入力データのファイルサイズが抑えられる。そのため、分散処理システム１の分散処理を適切に行うことができる。
【００２２】
〔２．情報処理システム１００〕
次に、分散処理システム１を含む情報処理システム１００について説明する。図２は実施形態に係る情報処理システム１００の一例を示す図である。
【００２３】
図２に示すように、実施形態に係る情報処理システム１００（コンピュータシステムの一例）は、分散処理システム１と、複数のサービス提供サーバ７と、ジョブ要求装置８（情報処理装置の一例）とを備える。分散処理システム１と、サービス提供サーバ７と、ジョブ要求装置８とはネットワーク４を介して互いに通信可能に接続される。
【００２４】
分散処理システム１は、上述したように、入力データを複数のスレーブサーバ３に分配し、複数のスレーブサーバ３によって入力データに対する分散処理を行う。分散処理システム１は、例えば、Ｈａｄｏｏｐを実装した分散処理システムである。スレーブサーバ３は、マスタサーバ２から分配されたデータを用いてキーと値のペアデータである中間データを生成する処理（例えば、Ｍａｐ処理）を実行する。また、スレーブサーバ３は、かかる中間データに基づき同一キー毎に値を集計する処理（例えば、Ｒｅｄｅｃｅ処理）を実行する。
【００２５】
サービス提供サーバ７は、ネットワーク５を介してサービスをユーザ端末６のユーザへ提供するサーバである。例えば、複数のサービス提供サーバ７は、それぞれショッピングサーバ、オークションサーバ、音楽配信サーバ、動画配信サーバなどである。
【００２６】
各サービス提供サーバ７は、ログデータ（例えば、過去にサービスを利用したユーザのユーザ情報やサービス内容など）を記憶しており、かかるログデータは、入力データとして分散処理システム１に入力されて処理される。
【００２７】
なお、ログデータは、サービス提供サーバ７によって分散処理システム１に予め書き込まれ、分散処理システム１の所定のディレクトリに保持させることができる。また、記憶容量の低減を図るため、ログデータは、例えば、所定の圧縮形式（例えば、ｚｇｉｐ形式）で圧縮されて記憶されている。
【００２８】
ジョブ要求装置８は、ネットワーク４を介して分散処理システム１に対して分散処理のジョブを要求し、分散処理システム１にかかるジョブを実行させる。例えば、ジョブ要求装置８は、サービス提供サーバ７のログデータを入力データとし、かかるログデータを解析するジョブを分散処理システム１へ要求することができる。
【００２９】
〔２．１．分散処理システム１〕
分散処理システム１は、上述したように、マスタサーバ２と、複数のスレーブサーバ３とを備える。図３は、マスタサーバ２およびスレーブサーバ３の構成例を示す図である。
【００３０】
図３に示すように、マスタサーバ２は、通信部２０と、制御部２１と、記憶部２２とを備える。通信部２０は、制御部２１とネットワーク４との間で情報の送受信を行う通信インターフェイスである。制御部２１は、データ管理部２３と、ジョブ管理部２４とを備え、通信部２０を介して他の装置とデータ（情報）の送受信を行う。
【００３１】
スレーブサーバ３は、通信部３０と、制御部３１と、記憶部３２とを備える。通信部３０は、制御部３１とネットワーク４との間で情報の送受信を行う通信インターフェイスである。制御部３１は、記憶処理部３３と、タスク処理部３４とを備え、通信部３０を介して他の装置とデータ（情報）の送受信を行う。
【００３２】
まず、分散ファイルシステムとしてのマスタサーバ２およびスレーブサーバ３の動作について説明する。分散ファイルシステムが例えばＨＤＦＳの場合、マスタサーバ２は、ＮａｍｅＮｏｄｅとして機能し、スレーブサーバ３は、ＤａｔａＮｏｄｅとして機能する。なお、分散ファイルシステムは、ＨＤＦＳに限定されない。
【００３３】
マスタサーバ２のデータ管理部２３は、分散ファイルシステムの全体的な管理を行う。例えば、データ管理部２３は、入力データを所定サイズ単位で分割し、かかる分割したデータ（以下、分割データと記載する）を複数のスレーブサーバ３へ分配する。
【００３４】
マスタサーバ２のデータ管理部２３は、入力データが圧縮データである場合には、かかる入力データの解凍処理をした後に解凍した入力データを分割する。また、データ管理部２３は、入力データが特定の圧縮形式（例えば、ｇｚｉｐ）の圧縮ファイルである場合、分割処理を行わずに、かかる圧縮ファイルをそのまま１つのスレーブサーバ３へ記憶させる。
【００３５】
また、データ管理部２３は、分散ファイルシステムのメタデータを管理したり、分散ファイルシステムの使用状態を確認したりする。メタデータには、例えば、分散ファイルシステムのツリーの情報、ツリー内の全ファイルに関する情報およびディレクトリなどの情報が含まれる。これにより、ジョブ管理部２４は、分散ファイルシステム内の分割データの格納位置やファイル名などを特定することができる。
【００３６】
スレーブサーバ３の記憶処理部３３は、マスタサーバ２から分配された分割データを記憶部３２に記憶する。かかる分割データのレプリカは、スレーブサーバ３の故障に備え、他の複数のスレーブサーバ３に保存される。
【００３７】
次に、分散処理フレームワークとしてのマスタサーバ２およびスレーブサーバ３の動作について説明する。分散処理フレームワークが例えばＨａｄｏｏｐ−ＭａｐＲｅｄｕｃｅである場合、マスタサーバ２は、ＭａｐＲｅｄｕｃｅジョブの実行を制御するＪｏｂＴｒａｃｋｅｒなどとして機能する。また、スレーブサーバ３は、ＭａｐタスクやＲｅｄｕｃｅタスクの実行を管理するＴａｃｋＴｒａｋｅｒやこれらのタスクを実行するＣｈｉｌｄなどとして機能する。なお、分散処理フレームワークは、Ｈａｄｏｏｐ−ＭａｐＲｅｄｕｃｅに限定されない。
【００３８】
分散処理フレームワークにおいて、マスタサーバ２のジョブ管理部２４は、ジョブの管理、スレーブサーバ３へのタスク割り当て、スレーブサーバ３のリソース管理などを行う。
【００３９】
ジョブ（例えば、ＭａｐＲｅｄｕｃｅジョブ）を定義する情報（以下、ジョブ定義情報と記載する）は、例えば、ジョブ要求装置８からマスタサーバ２へ送信される。かかるジョブ定義情報には、入力パス、出力パス、出力フォーマット、処理命令などの情報が含まれる。
【００４０】
入力パスは、ジョブの対象となる入力データの格納位置を示し、例えば、分散ファイルシステム上のディレクトリである。また、出力パスは、ジョブの結果である出力データの格納位置を示し、例えば、分散ファイルシステム上のディレクトリである。出力フォーマットは、出力データの出力形式を示し、かかる出力フォーマットによって出力データの分割数や圧縮形式などが指定される。
【００４１】
処理命令は、分散処理を実行するためのプログラムであり、例えば、第１処理（例えば、Ｍａｐ処理）のプログラム（例えば、Ｍａｐｐｅｒ）と第２処理（例えば、Ｒｅｄｕｃｅ処理）のプログラム（例えば、Ｒｅｄｕｃｅｒ）とを含む。
【００４２】
第１処理のプログラムは、入力データをキーとバリューとのペアに変換する第１タスク（例えば、Ｍａｐタスク）を実行するためのプログラムである。また、第２処理のプログラムは、第１処理のキー毎にデータを集約する第２タスク（例えば、Ｒｅｄｕｃｅタスク）を実行する。第１タスクは、キーと値のペアデータである中間データを生成する処理であり、第２タスクは、中間データから同一キー毎に値を集計するタスクである。
【００４３】
マスタサーバ２のジョブ管理部２４は、例えば、入力データの分割データの数に応じた数の第１タスクを複数のスレーブサーバ３に割り当てる。また、ジョブ管理部２４は、例えば、処理命令によって指定された数の第２タスクを複数のスレーブサーバ３に割り当てる。なお、ジョブ管理部２４は、例えば、各スレーブサーバ３が管理している分割データを用いることができるように第１タスクを各スレーブサーバ３へ割り当てることで、サーバ間の通信量を抑えるようにしている。
【００４４】
このように、マスタサーバ２のジョブ管理部２４は、ジョブ定義情報に基づき、第１タスクと第２タスクとをスレーブサーバ３に割り当てる。スレーブサーバ３のタスク処理部３４は、マスタサーバ２から割り当てられた第１タスクおよび第２タスクを実行する。なお、タスク処理部３４は、第１タスクおよび第２タスクを並列処理することができる。
【００４５】
分散処理システム１において、ジョブの処理結果は、ジョブ定義情報によって指定された出力フォーマットのデータに変換され、ジョブ定義情報によって指定された出力パスに格納される。
【００４６】
例えば、スレーブサーバ３のタスク処理部３４は、出力処理として、マスタサーバ２の要求に応じて各スレーブサーバ３の第２タスクの処理結果を統合してジョブの処理結果である処理結果データを生成し、かかる処理結果データを所定の圧縮形式で圧縮して所定の出力パスに出力する。なお、かかる出力処理は、スレーブサーバ３のタスク処理部３４に代えて、マスタサーバ２が実行することもできる。
【００４７】
［２．２．サービス提供サーバ７］
サービス提供サーバ７は、ネットワーク５を介して各種のサービスをユーザ端末６のユーザへ提供する。図４は、サービス提供サーバ７の構成例を示す図である。
【００４８】
図４に示すように、サービス提供サーバ７は、通信部４０と、制御部４１と、記憶部４２とを備える。通信部４０は、制御部４１とネットワーク４との間で情報の送受信を行う通信インターフェイスと、ユーザ端末６が接続されたネットワーク５と制御部４１との間で情報の送受信を行う通信インターフェイスとを含む。
【００４９】
制御部４１は、要求受付部４３と、サービス提供部４４とを備え、記憶部４２は、サービス情報記憶部４５と、ログデータ記憶部４６とを含む。要求受付部４３は、ユーザ端末６からのサービス提供要求を受け付け、サービス提供部４４は、ユーザ端末６からのサービス提供要求に応じたサービスをユーザ端末６へ提供する。
【００５０】
例えば、サービス提供サーバ７が音楽配信サービスを提供する音楽サーバである場合、サービス提供部４４は、サービス提供要求に応じた音楽コンテンツをユーザ端末６へ送信する。また、サービス提供サーバ７がショッピングサービスを提供するショッピングサーバである場合、サービス提供部４４は、サービス提供要求に応じたショッピングページの情報をユーザ端末６へ送信したり、サービス提供要求に応じた商品の購入処理を行ったりする。
【００５１】
サービス提供部４４は、サービス情報記憶部４５に記憶された情報に基づいてユーザ端末６へのサービス提供を行う。例えば、サービス提供サーバ７が音楽配信サービスを提供するサーバである場合、サービス情報記憶部４５には、音楽コンテンツなどが記憶され、かかる音楽コンテンツがユーザ端末６へ送信される。
【００５２】
また、サービス提供サーバ７がショッピングサービスを提供するサーバである場合、サービス情報記憶部４５には、商品に関する情報（商品画像、商品説明、価格、在庫などの情報）などが記憶され、かかる商品に関する情報を含むページの情報がユーザ端末６へ送信される。また、サービス提供サーバ７が広告コンテンツの配信を行う広告配信サーバである場合、サービス情報記憶部４５には、広告コンテンツなどが記憶され、かかる広告コンテンツがユーザ端末６へ送信される。
【００５３】
サービス提供部４４は、サービス提供要求を行ったユーザ端末６のユーザに関する情報（ユーザの属性、ユーザの位置、ユーザのアクセス時間など）や提供したサービスの内容などをサービスログとしてログデータ記憶部４６に記憶する。
【００５４】
サービスログには、例えば、ユーザ端末６へ送信したショッピングページ、オークションページ、音楽コンテンツ、動画コンテンツなどに関するデータや、広告コンテンツの配信数や広告コンテンツに対するユーザのアクションに関するデータが含まれる。かかるサービスログは、例えば、所定の圧縮形式（例えば、ｇｚｉｐ）で圧縮されてログデータ記憶部４６に記憶される。
【００５５】
サービスログは、例えば、サービス提供サーバ７に対するユーザ端末６の一つのアクション毎に、ユーザに関する情報および提供サービスの内容などを含むデータが１つのレコード（行）のテキストデータとして含まれる。この場合、サービスログは、アクセスに応じたレコード数（行数）のテキストデータとしてログデータ記憶部４６に記憶される。なお、サービス提供サーバ７の制御部４１は、情報処理システム１００の分散処理システム１にサービスログを書き込むことができる。
【００５６】
なお、以下において、例えば、ショッピングサービスを提供するサービス提供サーバ７のログデータを「ショッピングのサービスログ」と記載し、オークションサービスを提供するサービス提供サーバ７のログデータを「オークションのサービスログ」と記載する。また、音楽配信サービスを提供するサービス提供サーバ７のログデータを「音楽配信サービスのサービスログ」と記載する。
【００５７】
［２．３．ジョブ要求装置８］
ジョブ要求装置８は、分散処理システム１に対してジョブを要求する。かかるジョブ要求装置８は、例えば、複数の種類のジョブを分散処理システム１に対して要求することができ、複数の種類のジョブ毎に、所定周期（例えば、１日毎）で同一ジョブを繰り返し要求することができる。
【００５８】
ジョブで規定される処理は、集計条件や解析条件に基づいて行われるログデータの集計処理や解析処理である。かかる処理は、例えば、１以上のサービス提供サーバ７にアクセスしたユーザ端末６のユーザの数を属性毎に集計する処理、ショッピングサービスやオークションサービスで購入された各商品の数をユーザ属性毎に集計する処理、広告配信において配信された各広告コンテンツのＣＴＲを解析する処理などである。なお、ジョブで規定される処理は、かかる例に限定されず、種々の処理が可能である。
【００５９】
図５は、ジョブ要求装置８の構成例を示す図である。図５に示すように、ジョブ要求装置８は、通信部５０と、制御部５１と、記憶部５２とを備える。通信部５０は、制御部５１とネットワーク４との間で情報の送受信を行う通信インターフェイスである。
【００６０】
制御部５１は、ジョブ要求部５３と、出力制御部５４とを備え、通信部５０を介して他の装置とデータ（情報）の送受信を行う。記憶部５２は、設定情報記憶部５５と、過去情報記憶部５６とを備える。記憶部５２は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。
【００６１】
制御部５１は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。制御部５１は、内部のＣＰＵ（Central  Processing  Unit）またはＭＰＵ（Micro  Processing  Unit）によって内部の記憶装置に記憶されたプログラム（情報処理プログラムの一例）がＲＡＭを作業領域として実行されることで、ジョブ要求部５３および出力制御部５４として機能する。
【００６２】
［２．３．１．ジョブ要求部５３］
ジョブ要求部５３は、設定情報記憶部５５に記憶された設定情報と出力制御部５４によって設定される分割数情報とに基づいて、ジョブ定義情報を生成し、かかるジョブ定義情報を含むジョブ要求をマスタサーバ２へ送信する。
【００６３】
設定情報記憶部５５には、例えば、複数の種類のジョブに関する情報（以下、ジョブ設定情報と記載する）が記憶される。かかるジョブ設定情報は、例えば、各ジョブの実行周期、ジョブが対象とするログデータ、ジョブの内容などの情報である。図６は、設定情報記憶部５５に記憶される設定情報テーブルの一例を示す図である。
【００６４】
図６に示す設定情報テーブルには、「ジョブＮｏ」、「ジョブ周期」、「対象データ」および「ジョブ内容」の情報が互いに関連付けられている。「ジョブＮｏ」の情報は、ジョブの識別情報であり、以下においては、「ジョブＮｏ」が「ｍ（ｍ＝１，２，３，・・・）」のジョブを便宜上、ジョブＮｏ，ｍのジョブと記載する。
【００６５】
また、「ジョブ周期」の情報は、ジョブの実行周期を示す情報であり、「対象データ」の情報は、ジョブが対象とするログデータを示す情報である。また、「ジョブ内容」の情報は、分散処理システム１に実行させるジョブの内容（処理命令、入力パス、出力パス、出力フォーマット（分割数情報を除く）など）を示す情報である。
【００６６】
例えば、図６に示す設定情報テーブルにおけるジョブＮｏ．１のジョブ設定情報は、ジョブ周期が「１日」であり、対象データが「ショッピング、オークション」であり、ジョブ内容が「アクセスログの属性集計」である。
【００６７】
この場合、ジョブ要求部５３は、１日毎に、ショッピングのサービスログとオークションのサービスログを入力データとして、アクセスログの属性集計を実行するジョブ定義情報を生成する。かかるジョブ定義情報では、例えば、入力パスとしてショッピングのサービスログとオークションのサービスログのディレクトリが設定される。また、ジョブ定義情報には、過去１日間に対象のサービス提供サーバ７（ショッピングサーバおよびオークションサーバ）へアクセスしたユーザの属性（例えば、性別、住所、年齢）毎の数を集計する処理指令が含まれる。また、出力パスは、例えば、分散処理システム１内に設定される。
【００６８】
また、図６に示す設定情報テーブルにおけるジョブＮｏ．２のジョブ設定情報は、ジョブ周期が「１日」であり、対象データが「音楽配信」であり、ジョブ内容が「配信ログの属性集計」である。
【００６９】
この場合、ジョブ要求部５３は、１日毎に、音楽配信サービスのサービスログを入力データとして、音楽配信の配信ログの属性集計を実行するジョブ定義情報を生成する。かかるジョブ定義情報では、例えば、入力パスとして音楽配信サービスのサービスログのディレクトリが設定され、過去１日間にサービス提供サーバ７から音楽コンテンツを取得したユーザの属性（例えば、性別、住所、年齢）毎の数を集計する処理指令が含まれる。また、出力パスは、例えば、分散処理システム１内に設定される。
【００７０】
また、図６に示す設定情報テーブルにおけるジョブＮｏ．３のジョブ設定情報は、ジョブ周期が「３日」であり、対象データが「ジョブＮｏ．１の結果」であり、ジョブ内容が「アクセスログの属性集計」である。
【００７１】
この場合、ジョブ要求部５３は、３日毎に、ジョブＮｏ．１のジョブに対する分散処理システム１の出力データを入力データとして、アクセスログの属性集計を実行するジョブ定義情報を生成する。かかるジョブ定義情報では、例えば、入力パスとして分散処理システム１内における「ジョブＮｏ．１の結果」が格納されたディレクトリが設定される。また、かかるジョブ定義情には、報過去３日間に対象のサービス提供サーバ７（ショッピングサーバおよびオークションサーバ）へアクセスしたユーザのうち特定の属性を有するユーザの数を集計する処理指令が含まれる。
【００７２】
図５に戻って、制御部５１の説明を続ける。制御部５１の出力制御部５４は、分散処理システム１に対し実行させようとする新たなジョブと同一ジョブに対する過去の分散処理システム１による処理結果に応じた分割数情報を生成する。かかる分割数情報は、新たなジョブ（今回のジョブ）に対する分散処理システム１の分散処理の処理結果を分割する数（分割数）に関する情報である。
【００７３】
かかる出力制御部５４は、このように生成した分割数情報をジョブ要求部５３へ通知することで、出力データを構成する各出力ファイルのファイルサイズを制御し、各出力ファイルのファイルサイズを抑えることができる。
【００７４】
なお、分散処理システム１がジョブ定義情報のうち分割数情報を個別に受け付け可能である場合には、出力制御部５４は、ジョブの識別情報と分割数情報とを含む情報をマスタサーバ２へ送信することもできる。この場合、マスタサーバ２は、ジョブの識別情報と分割数情報とに基づいて、ジョブ要求部５３から取得したジョブ定義情報に分割数情報を設定することができる。
【００７５】
出力制御部５４は、図５に示すように、情報取得部６１と、決定部６２と、出力設定部６３とを備える。
【００７６】
情報取得部６１は、ジョブ要求部５３からマスタサーバ２へ送信された過去のジョブ定義情報に基づく分散処理システム１の出力データに関する情報をジョブ毎に取得して過去情報記憶部５６に記憶する。情報取得部６１が取得する出力データに関する情報には、例えば、出力データの情報（例えば、出力データのデータサイズおよびレコード数、出力データに含まれる出力ファイルの数、レコード数およびファイルサイズなど）の情報が含まれる。
【００７７】
マスタサーバ２は、ジョブ要求装置８から要求されたジョブの処理結果をログデータとして記憶しており、かかる処理結果のログデータには、上述した出力データに関する情報が含まれる。マスタサーバ２は、情報取得部６１からの要求に基づき、処理結果のログデータを情報取得部６１へ送信する。
【００７８】
ここで、出力データがｎ個の出力ファイルＦ１〜Ｆｎ（ｎは２以上の整数）によって構成されているとする。この場合、出力データに関する情報には、例えば、出力データに含まれる出力ファイルＦ１〜Ｆｎの平均ファイルサイズＳａｖと平均レコード数Ｐａｖ、または、平均ファイルサイズＳａｖと平均レコード数Ｐａｖとを算出するための情報が含まれる。
【００７９】
例えば、出力データに関する情報に、出力ファイルＦ１〜ＦｎのそれぞれのファイルサイズＳ１〜Ｓｎの情報と、出力ファイルＦ１〜Ｆｎにそれぞれ含まれるレコード数Ｐ１〜Ｐｎの情報が含まれているとする。この場合、これらの情報に基づいて、情報取得部６１は、平均ファイルサイズＳａｖ（＝（Ｓ１＋Ｓ２＋・・・＋Ｓｎ）／ｎ）と平均レコード数Ｐａｖ（＝（Ｐ１＋Ｐ２＋・・・＋Ｐｎ）／ｎ））を算出して取得することができる。
【００８０】
また、情報取得部６１は、ジョブ定義情報で定義した出力パスから複数の出力ファイルのそれぞれのファイルサイズＳ１〜Ｓｎを検出し、また、これら複数の出力ファイルに含まれるレコード数を検出して、平均レコード数Ｐａｖを演算することもできる。
【００８１】
決定部６２は、例えば、情報取得部６１で取得されて過去情報記憶部５６に記憶された出力データに関する情報に基づいて、分割数に関する情報を決定する。例えば、決定部６２は、出力データに関する情報に基づいて、出力ファイルのファイルサイズを目標サイズＳｔにするような出力ファイル毎のレコード数Ｐｆ（以下、目標レコード数Ｐｆと記載する）を分割数に関する情報として決定する。
【００８２】
例えば、決定部６２は、平均ファイルサイズＳａｖ、平均レコード数Ｐａｖおよび目標サイズＳｔを用い、下記式（１）の演算によって、今回のジョブに対する目標レコード数Ｐｆを求めることができる。なお、今回のジョブとは、分散処理システム１に対して実行させようとするジョブであり、まだ実行されていないジョブである。
Ｐｆ＝（Ｓｔ×Ｐａｖ）／Ｓａｖ      ・・・（１）
【００８３】
例えば、ジョブＮｏ．１のジョブ定義情報の分割数情報を生成する場合、ジョブＮｏ．１の前回のジョブに対する分散処理システム１の出力データに関する情報に基づいて、ジョブＮｏ．１の今回のジョブに対する目標レコード数Ｐｆを求める。
【００８４】
このように、決定部６２は、過去の同一ジョブに対する分散処理システム１の出力データに関する情報に基づいて、今回の同一ジョブに対する目標レコード数Ｐｆを求めることで、目標レコード数Ｐｆを精度よく決定することができる。
【００８５】
すなわち、ジョブの対象データが異なる場合、１つのレコードのサイズが大きく異なる場合があるが、対象データが同一である場合、１つのレコードのサイズのばらつきが少ない場合が多く、これにより、目標レコード数Ｐｆを精度よく決定することができる。
【００８６】
決定部６２は、前回の同一ジョブに対する分散処理システム１の出力データに関する情報に基づいて、今回の同一ジョブに対する目標レコード数Ｐｆを求めることができる。これにより、直前の出力データを用いることができ、例えば、対象データのレコード形式に変化があったとしても、目標レコード数Ｐｆの精度が継続して悪化することを抑制することができる。
【００８７】
また、決定部６２は、過去の複数の同一ジョブに対する分散処理システム１の出力データに関する情報の平均に基づいて、今回の同一ジョブに対する目標レコード数Ｐｆを求めることができる。これにより、対象データのレコード形式の変化がないような場合、１つのレコードのサイズのばらつきを平準化することができ、目標レコード数Ｐｆを精度よく決定することができる。
【００８８】
例えば、過去のｍ個の同一ジョブに対する分散処理システム１の出力データにおける平均ファイルサイズＳａｖと平均レコード数ＰａｖをそれぞれＳａｖ１〜Ｓａｖｍ、Ｐａｖ１〜Ｐａｖｍとする。この場合、決定部６２は、Ｓａｖ＝（Ｓａｖ１＋Ｓａｖ２＋・・・＋Ｓａｖｍ）／ｍ、Ｐａｖ＝（Ｐａｖ１＋Ｐａｖ２＋・・・＋Ｐａｖｍ）／ｍを演算することによって、平均ファイルサイズＳａｖと平均レコード数Ｐａｖとを求める。
【００８９】
出力設定部６３は、今回の出力データに含まれるレコードの総数Ｆｔと目標レコード数Ｐｆとに基づいて今回の出力データの分割数Ｐｔが決定されるように分割数情報を設定する。例えば、出力設定部６３は、ＩＮＴ関数を用いて、「Ｐｔ＝ＩＮＴ（Ｆｔ／Ｐｆ）」の演算命令を分割数情報としてジョブ要求部５３へ通知する。かかる分割数情報は、ジョブ要求部５３によって、出力フォーマットにおける分割数情報として設定される。
【００９０】
分散処理システム１は、内部のカウンターによってジョブ毎にジョブ実行中に分散処理を行ったレコードの数をカウントしており、今回のジョブに対するすべての処理が終了した後のカウント結果が「今回の出力データに含まれるレコードの総数Ｆｔ」である。分散処理システム１は、かかるカウント結果に基づいて、Ｐｔ＝ＩＮＴ（Ｆｔ／Ｐｆ）を演算し、今回の出力データの分割数Ｐｔを得る。そして、分散処理システム１は、分割数Ｐｔで今回のジョブに対する分散処理の結果を分割して出力ファイルを生成する。
【００９１】
なお、上述した例では、決定部６２は、出力データに関する情報に基づいて、目標レコード数Ｐｆを決定するが、決定部６２によって決定される分割数に関する情報は、目標レコード数Ｐｆに限定されない。例えば、決定部６２は、出力データに関する情報に基づいて、出力ファイルのファイルサイズを目標サイズＳｔにする分割数Ｐｔを分割数に関する情報として決定することもできる。
【００９２】
例えば、決定部６２は、過去の同一ジョブに対する分散処理システム１の出力データのデータサイズＳｏに基づいて、今回の同一ジョブに対する分割数Ｐｔを決定することができる。この場合、決定部６２は、例えば、下記式（２）の演算によって、今回の同一ジョブに対する分割数Ｐｔを決定することができる。
Ｐｔ＝Ｓｏ／Ｓｔ      ・・・（２）
【００９３】
なお、過去の同一ジョブに対する分散処理システム１の出力データの分割数をＰｔｐとした場合、Ｓｏ＝Ｐｔｐ×Ｓａｖとして表すことができる。したがって、決定部６２は、過去の分割数Ｐｔｐと平均ファイルサイズＳａｖとに基づいて、今回の同一ジョブに対する分割数Ｐｔを決定することもできる。
【００９４】
決定部６２は、例えば、前回の同一ジョブに対する分散処理システム１の出力データのデータサイズＳｏに基づいて、今回の同一ジョブに対する分割数Ｐｔ（＝Ｓｏ／Ｓｔ）を決定することができる。また、決定部６２は、過去の複数の同一ジョブに対する分散処理システム１の出力データのデータサイズＳｏの平均値に基づいて、今回の同一ジョブに対する分割数Ｐｔ（＝Ｓｏの平均値／Ｓｔａｖ）を決定することもできる。なお、「Ｓｔａｖ」は、過去の複数の分割数Ｐｔｐの平均値である。
【００９５】
このように、決定部６２は、分割数に関する情報として分割数Ｐｔを決定することができ、出力設定部６３は、決定部６２によって決定された分割数Ｐｔを分割数情報として設定し、ジョブ要求部５３へ通知する。ジョブ要求部５３は、決定部６２によって決定された分割数Ｐｔを出力フォーマットにおける分割数情報として設定する。
【００９６】
この場合も、対象データが同一であるため、１つのレコードのサイズのばらつきが少ない場合が多く、これにより、目標レコード数Ｐｆを精度よく決定することができる。
【００９７】
また、決定部６２は、各ログデータにおいてレコード形式が変更された場合に、かかるレコード形式の変更による出力データのデータサイズの変動を予測して補正値Ｋｓを求めることができる。決定部６２は、かかる補正値Ｋｓによって分割数Ｐｔを補正し、かかる補正結果Ｐｔｓ（＝ＩＮＴ（Ｐｔ×Ｋｓ））を分割数に関する情報とすることもできる。
【００９８】
この場合、情報取得部６１は、各サービス提供サーバ７からログデータを取得し、決定部６２は、情報取得部６１により取得されたログデータのレコードに基づき、かかるレコードのレコード形式の変更を検出する。決定部６２は、レコード形式の変更による出力データのデータサイズの変動率Ｄｓを予測する。決定部６２は、例えば、予測した変動率Ｄｓを補正値Ｋｓとすることができる。
【００９９】
ところで、図６に示すジョブＮｏ．１のジョブに対する分散処理システム１の処理結果は、図６に示すジョブＮｏ．３のジョブの入力データとして用いられる。したがって、目標サイズＳｔを、例えば、分散処理システム１における分割データのサイズよりも小さいサイズにすることによって、ジョブＮｏ．３のジョブの入力データが分割されることを抑制することができる。
【０１００】
したがって、ジョブＮｏ．１のジョブにおける出力データを一つのファイルとする場合に比べ、ファイルのデータサイズを低減することができ、ジョブＮｏ．３のジョブに対する分散処理システム１の処理速度を向上させることができる。なお、目標サイズＳｔを分散処理システム１における分割データのサイズよりも小さいサイズにしない場合であっても、目標サイズＳｔに応じたファイルサイズの出力ファイルを入力データとして分散処理システム１に処理させることができる。そのため、この場合でも、分散処理システム１の処理速度を向上させることができる。
【０１０１】
〔３．情報処理システム１００の処理フロー〕
まず、図７を用いて、情報処理システム１００における情報処理の手順について説明する。図７は、情報処理システム１００における情報処理の流れを示すフローチャートであり、かかる処理は同一のジョブ（例えば、図６に示すジョブＮｏ．３のジョブ）に関して繰り返し実行される。
【０１０２】
図７に示すように、情報処理システム１００において、ジョブ要求装置８の制御部５１は、情報取得の契機であるか否かを判定する（ステップＳ１０）。情報取得の契機であると判定した場合（ステップＳ１０；Ｙｅｓ）、ジョブ要求装置８の制御部５１は、分散処理システム１の過去のジョブに対する処理結果の情報を情報処理システム１００から取得する（ステップＳ１１）。
【０１０３】
次に、ジョブ要求装置８の制御部５１は、設定情報記憶部５５の設定情報テーブルに設定されたジョブ周期に基づいて、ジョブ要求の契機であるか否かを判定する（ステップＳ１２）。ジョブ要求の契機であると判定した場合（ステップＳ１２；Ｙｅｓ）、ジョブ要求装置８の制御部５１は、ステップＳ１１で取得した過去の処理結果に応じた分割数に関する情報を決定する（ステップＳ１３）。
【０１０４】
そして、ジョブ要求装置８の制御部５１は、決定した分割数に関する情報に基づく分割数情報をジョブ定義情報に設定し（ステップＳ１４）、かかるジョブ定義情報を含むジョブ要求を分散処理システム１のマスタサーバ２へ送信する。
【０１０５】
分散処理システム１のマスタサーバ２は、ジョブ要求装置８から送信されたジョブ定義情報に含まれる処理命令に基づいて、分散処理を行う（ステップＳ１５）。かかる分散処理は、マスタサーバ２が処理命令に基づく第１タスクや第２タスクを各スレーブサーバ３にそれぞれ実行させることによって行われる。
【０１０６】
分散処理システム１のスレーブサーバ３またはマスタサーバ２は、ジョブ定義情報の分割数情報に応じた分割数でステップＳ１５における分割処理の処理結果を分割し、複数の出力ファイルを生成する（ステップＳ１６）。スレーブサーバ３またはマスタサーバ２は、生成された複数の出力ファイルを含む出力データをジョブ定義情報で指定された出力パスに格納する（ステップＳ１７）。
【０１０７】
ステップＳ１７の処理が終了した場合、情報取得の契機でないと判定された場合（ステップＳ１０；Ｎｏ）、または、ジョブ要求の契機でないと判定された場合（ステップＳ１２；Ｎｏ）、情報処理システム１００は、図７に示す処理を終了する。
【０１０８】
〔４．変形例〕
上述した分散処理システム１では、キー・バリュー形式の処理を行う分散処理を行う例を説明したが、分散処理の内容はキー・バリュー形式の処理に限定されるものでなく、分散処理システム１は、種々の分散処理を行うことができる。
【０１０９】
また、上述した情報処理システム１００においては、ジョブ要求装置８がジョブ定義情報を生成するものであるが、ジョブ定義情報の生成は例えばマスタサーバ２によって行うこともできる。この場合、マスタサーバ２がジョブ要求装置（情報処理装置の一例）として機能し、ジョブ要求装置８の制御部５１および記憶部５２のそれぞれの機能をマスタサーバ２の制御部２１および記憶部２２が実行する。すなわち、マスタサーバ２の制御部２１は、ジョブ要求部５３および出力制御部５４を備え、マスタサーバ２の記憶部２２は、設定情報記憶部５５および過去情報記憶部５６を備えるように構成することもできる。
【０１１０】
〔５．ハードウェア構成〕
上述した実施形態におけるマスタサーバ２、スレーブサーバ３、サービス提供サーバ７およびジョブ要求装置８は、それぞれ例えば図８に示すような構成のコンピュータ２００がプログラムを実行することによって実現される。
【０１１１】
図８は、プログラムを実行するコンピュータのハードウェア構成の一例を示す図である。コンピュータ２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ（Hard  Disk  Drive）２０４、通信インターフェイス（Ｉ／Ｆ）２０５、入出力インターフェイス（Ｉ／Ｆ）２０６、およびメディアインターフェイス（Ｉ／Ｆ）２０７を備える。
【０１１２】
ＣＰＵ２０１は、ＲＯＭ２０３またはＨＤＤ２０４に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ２０３は、コンピュータ２００の起動時にＣＰＵ２０１によって実行されるブートプログラムや、コンピュータ２００のハードウェアに依存するプログラム等を格納する。
【０１１３】
ＨＤＤ２０４は、ＣＰＵ２０１によって実行されるプログラムによって使用されるデータ等を格納する。通信インターフェイス２０５は、各通信部２０、３０、４０、５０に対応し、ネットワーク４、５を介して他の機器からデータを受信してＣＰＵ２０１へ送り、ＣＰＵ２０１が生成したデータを、ネットワーク４、５を介して他の機器へ送信する。
【０１１４】
ＣＰＵ２０１は、入出力インターフェイス２０６を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。ＣＰＵ２０１は、入出力インターフェイス２０６を介して、入力装置からデータを取得する。また、ＣＰＵ２０１は、生成したデータを、入出力インターフェイス２０６を介して出力装置へ出力する。
【０１１５】
メディアインターフェイス２０７は、記録媒体２０８に格納されたプログラムまたはデータを読み取り、ＲＡＭ２０２を介してＣＰＵ２０１に提供する。ＣＰＵ２０１は、当該プログラムを、メディアインターフェイス２０７を介して記録媒体２０８からＲＡＭ２０２上にロードし、ロードしたプログラムを実行する。記録媒体２０８は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１１６】
コンピュータ２００のＣＰＵ２０１は、ＲＡＭ２０２上にロードされたプログラムを実行することにより、上述した制御部（制御部２１、制御部３１、制御部４１または制御部５１）の各機能を実現する。また、かかる制御部は、それぞれ一部または全部がハードウェアのみで構成されてもよい。
【０１１７】
コンピュータ２００のＣＰＵ２０１は、プログラムを、記録媒体２０８から読み取って実行するが、他の例として、他の装置から、ネットワーク４、５を介してこれらのプログラムを取得してもよい。
【０１１８】
なお、ＨＤＤ２０４は、各記憶部２２、３２、４２、５２に対応し、各記憶部２２、３２、４２、５２と同様のデータを記憶する。また、ＨＤＤ２０４に代えて、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、光ディスク等の記憶装置を用いてもよい。
【０１１９】
〔６．効果〕
実施形態に係るジョブ要求装置８（情報処理装置の一例）は、ジョブ要求部５３と、出力制御部５４とを備える。ジョブ要求部５３は、入力データを分散処理する分散処理システム１にジョブを実行させる。出力制御部５４は、同一ジョブに対する分散処理システム１における過去の処理結果に応じた分割数で今回の分散処理の処理結果を分割した複数の出力ファイルを、今回のジョブに対する出力データとして分散処理システム１に生成させる。
【０１２０】
これにより、例えば、過去の処理結果に応じて、出力ファイルのファイルサイズを制御することができる。そのため、分散処理システム１の出力データを入力データとして分散処理システム１に処理させる場合に、入力データのファイルサイズを抑えることができる。したがって、例えば、分散処理システム１による入力データの分割処理の負荷や処理時間を低減でき、これにより、分散処理システム１の分散処理を適切に行うことができる。
【０１２１】
また、出力制御部５４は、情報取得部６１と、決定部６２と、出力設定部６３とを備える。情報取得部６１は、同一ジョブに対する分散処理システム１の過去の処理結果を取得する。決定部６２は、情報取得部６１によって取得された過去の処理結果に応じた分割数に関する情報を決定する。出力設定部６３は、決定部６２によって決定した情報に基づく分割数で今回の分散処理の処理結果を分割した複数の出力ファイルを今回のジョブに対する出力データとして分散処理システム１に生成させる。
【０１２２】
これにより、例えば、前回の処理結果に応じて出力ファイルが所望のファイルサイズになるように分割数を決定することができるため、出力ファイルのファイルサイズを精度よく制御することができる。
【０１２３】
出力データは、複数のレコードを含み、決定部６２は、出力ファイルのファイルサイズを目標サイズＳｔにする出力ファイルのレコード数（目標レコード数Ｐｆ）を分割数に関する情報として決定する。出力設定部６３は、決定部６２によって決定された目標レコード数Ｐｆと今回の分散処理の処理結果に含まれるレコードの総数Ｆｔとに応じた分割数で分割した出力ファイルを分散処理システム１に生成させる。
【０１２４】
したがって、入力データのレコード形式に則した目標レコード数Ｐｆを決定することができ、出力ファイルのファイルサイズをさらに精度よく制御することができる。
【０１２５】
決定部６２は、過去の出力データに含まれる出力ファイルの平均ファイルサイズＳａｖと平均レコード数Ｐａｖとに基づいて、目標レコード数Ｐｆを決定する。
【０１２６】
このように、出力ファイルの平均ファイルサイズＳａｖと平均レコード数Ｐａｖとを用いることから、出力ファイルのファイルサイズやレコード数のばらつきが大きい場合であっても、目標レコード数Ｐｆを適切に決定することができる。
【０１２７】
また、出力制御部５４は、複数の出力ファイルをそれぞれ圧縮形式のデータとして分散処理システム１に生成させる。これにより、分散処理システム１の出力データを入力データとして分散処理システム１に処理させる場合に、入力データのファイルサイズを抑えることができる。
【０１２８】
また、ジョブ要求部５３は、分散処理システム１で分割されて生成される出力データの複数の分割データを入力データとして分散処理システム１にジョブを実行させる。これにより、分散処理システム１による入力データの分割処理の負荷や処理時間を低減でき、分散処理システム１の分散処理を迅速に行うことができる。
【０１２９】
また、情報処理システム１００は、入力データには、ネットワーク上の異なるサービスのログデータやログデータの分散処理システム１における処理結果が含まれている場合であっても、出力ファイルのファイルサイズを精度よく制御することができる。これにより、分散処理システム１の分散処理を適切に行うことができる。
【０１３０】
また、上述したマスタサーバ２、スレーブサーバ３、サービス提供サーバ７およびジョブ要求装置８は、それぞれ複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【０１３１】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、ジョブ要求部は、ジョブ要求手段やジョブ要求回路に読み替えることができる。
【０１３２】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【０１３３】
１  分散処理システム
２  マスタサーバ
３  スレーブサーバ
６  ユーザ端末
７  サービス提供サーバ
８  ジョブ要求装置（情報処理装置の一例）
５１  制御部
５２  記憶部
５３  ジョブ要求部
５４  出力制御部
５５  設定情報記憶部
５６  過去情報記憶部
６１  情報取得部
６２  決定部
６３  出力設定部
１００  情報処理システム
【図１】
2018036885.tif 000003
【図２】
2018036885.tif 000004
【図３】
2018036885.tif 000005
【図４】
2018036885.tif 000006
【図５】
2018036885.tif 000007
【図６】
2018036885.tif 000008
【図７】
2018036885.tif 000009
【図８】
2018036885.tif 000010