JP5171904B2 - 分散処理システム及び分散処理方法 - Google Patents

分散処理システム及び分散処理方法 Download PDF

Info

Publication number
JP5171904B2
JP5171904B2 JP2010198978A JP2010198978A JP5171904B2 JP 5171904 B2 JP5171904 B2 JP 5171904B2 JP 2010198978 A JP2010198978 A JP 2010198978A JP 2010198978 A JP2010198978 A JP 2010198978A JP 5171904 B2 JP5171904 B2 JP 5171904B2
Authority
JP
Japan
Prior art keywords
mesh
map
point
meshes
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010198978A
Other languages
English (en)
Other versions
JP2012058836A (ja
Inventor
孝章 西岡
誠 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2010198978A priority Critical patent/JP5171904B2/ja
Publication of JP2012058836A publication Critical patent/JP2012058836A/ja
Application granted granted Critical
Publication of JP5171904B2 publication Critical patent/JP5171904B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

本発明は、所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を行う分散処理システム及び分散処理方法に関する。
近年のWebページの爆発的な増加に伴い、ネットワーク上に存在する情報量は、膨大なものとなっている。このようなネットワーク上の膨大な情報量に対する処理を行うためのソフトウェアフレームワークとして、MapReduceが知られている(例えば、非特許文献1)。
西田圭介(著)"Googleを支える技術 巨大システムの内側の世界"株式会社技術評論社 発行、2008年4月25日、第4章
ここで、MapReduceは、多数のコンピューターの集合であるコンピュータ・クラスターを用いて並列処理させるためのフレームワークである。MapReduceは、所定の処理を行うために、処理の対象となる入力データを複数の断片に分割して複数のコンピューターに割り当て、各コンピューターにおいて、Map定義に従った処理を並列に行ってKEY−VALUE型のデータを中間ファイルとして生成し、当該KEY−VALUE型のデータをソートして同一のKEYで束ねてKEY毎に当該中間ファイルを処理するコンピュータを割り当てるMapタスクと、割り当てられた各コンピューターにおいて、Reduce定義に従った処理を並列に行って処理結果を集約し、当該所定の処理の結果を得るReduceタスクとからなる。MapReduceによれば、膨大な情報量に対する分散処理をMapタスクとReduceタスクとに分割して実現している。
また、近年では、このMapReduceを実装したオープンソースソフトウェアとしてHadoopが知られており、Hadoopを用いることで大規模分散処理を誰でも容易に実行可能となっている。
ところで、近年では、インターネット上で地図情報の配信が盛んに行われており、例えば、地図上で店舗名等を検索すると、当該店舗の属する地図を表示するサービス等が知られている。このようなサービスは、地図を形成するためのインデックスデータを適切に生成することで実現される。ここで、地図は、地図を緯度(N)経度(E)に区画可能であり、インターネット上の地図は緯度経度に区画された複数のメッシュで形成されている。そのため、インデックスの生成を複数のコンピュータ(サーバ)で分散して行うためには、インデックスデータの生成をメッシュ毎(メッシュ単位)に行うことが好ましい。
しかしながら、地図上で一定の範囲を持った地図要素(例えば、建物、自然物、地域等)は、複数のメッシュにまたがる場合があり、このような場合、単にメッシュ毎に分散したのでは、適切なインデックスデータを生成することはできない。
本発明は、複数のメッシュにまたがる地図要素を含む地図データについての処理を、当該地図要素の位置、大きさを意識することなく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことのできる分散処理システム及び分散処理方法を提供することを目的とする。
本発明者らは、メッシュ単位毎に分散処理するために好適なKEY−VALUE型のデータセットの生成方法を新たに開発することで、本発明を完成するに至った。なお、以下において「シャッフル」とは、生成したKEY−VALUE型のデータセットを整理し、当該データセットをKEYでソートする処理を含む。
(1) 所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理システムであって、前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御手段と、前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得手段と、前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得手段と、前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得手段が読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得手段が読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定手段と、特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定手段が特定したメッシュの数だけ生成するデータ生成手段と、生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定手段が特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分け手段と、を備える分散処理システム。
(1)の分散処理システムによれば、メッシュ特定手段は、分散処理の対象となる閉領域の範囲指定情報の少なくとも一部を含むメッシュ及び点の範囲指定情報を含むメッシュを特定する。データ生成手段は、特定したメッシュの識別データをKEY、範囲指定情報をVALUEとするKEY−VALUE型のデータセットを、メッシュ特定手段が特定したメッシュの数だけ生成する。そして、実行処理振り分け手段は、生成したKEY−VALUE型のデータセットをシャッフルすることでKEYでソートし、KEY−VALUE型のデータセットに対する処理をメッシュ特定手段が特定したメッシュ毎に複数のサーバに割り当てて実行させる。
これにより、KEY−VALUE型のデータセット、特に分散処理の対象となる閉領域の範囲指定情報が、処理が振り分けられた複数のサーバの全てに対し提供されるため、メッシュ単位毎に分散処理するために好適なKEY−VALUE型のデータセットを生成することができる。その結果、閉領域が複数のメッシュにまたがる場合であっても、閉領域の位置、大きさを意識することなく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことができる。なお、KEY−VALUE型のデータセットはシャッフルによりKEYでソートされているので、分散処理システムは、同一のKEYを持つデータセットについて、同一のサーバで領域地図要素及び点地図要素の位置関係に関する処理を並列実行させることができる。
(2) 前記メッシュ特定手段は、前記範囲指定情報に含まれる任意の地点情報が属する基点メッシュを特定する基点メッシュ特定手段と、前記基点メッシュ特定手段が特定した前記基点メッシュに隣接する隣接メッシュを特定する隣接メッシュ特定手段と、前記隣接メッシュ特定手段が特定した前記隣接メッシュに前記範囲指定情報が示す前記閉領域の少なくとも一部が含まれるか否かを判定する包含判定手段と、を備える(1)に記載の分散処理システム。
(2)の分散処理システムによれば、範囲指定情報の任意の地点情報が属する基点メッシュを特定してから、この基点メッシュに隣接するメッシュのうち範囲指定情報の少なくとも一部が含まれるメッシュを、範囲指定情報の少なくとも一部を含むメッシュと判定する。これにより、閉領域が複数のメッシュにまたがる場合であっても、当該複数のメッシュを適切に取得することができる。なお、「隣接する」とは、当該メッシュの周囲8個のメッシュだけでなく、範囲指定情報の大きさによっては、周囲24個、49個・・・等のメッシュも含む。
(3)所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理方法であって、前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御ステップと、前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得ステップと、前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得ステップと、前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得ステップで読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得ステップで読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定ステップと、特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定ステップが特定したメッシュの数だけ生成するデータ生成ステップと、生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定ステップが特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分けステップと、を備える分散処理方法
(3)の分散処理方法によれば、(1)の分散処理システムと同様の効果を奏する。
本発明によれば、地図要素の位置、大きさを意識することなく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことができる。
本発明の実施形態の一例に係る分散処理システムの概要を示す図である。 本発明の実施形態の一例に係る分散処理システムの機能構成を示す図である。 本発明の実施形態の一例に係る記憶手段を示す図である。 本発明の実施形態の一例に係るメッシュ特定手段の処理の流れを示す概念図である。 本発明の実施形態の一例に係る分散処理システムの処理の流れを示すフローチャートである。 本発明の実施形態の一例に係る分散処理システムの処理の流れを示す概念図である。 本発明の実施形態の一例に係る分散処理システムにより生成されるインデックスDBを示す図である。
以下、本発明の実施形態について図面を参照して説明する。
[分散処理システム1の概要]
はじめに、図1を参照して本実施形態の分散処理システム1の概要について説明する。
分散処理システム1は、図1(1)に示すように、マスタサーバMと複数のワーカーサーバWとを含んで構成される。分散処理システム1は、前述のMapReduceを実装したオープンソースソフトウェアであるHadoop等を用いて実現することができる。
マスタサーバMは、所定の処理の対象となる入力データを多数の断片に区切り、ワーカーサーバWを割り当ててそれぞれについて処理を行うようにワーカーサーバWに要求を行う。ワーカーサーバWは、マスタサーバMからの要求を受け、Map定義に従って入力データからKEY−VALUE型のデータセットを中間ファイルとして生成するとともに、生成したKEY−VALUE型のデータセットをKEY毎にソートし、その処理の完了をマスタサーバMに通知する。そしてマスタサーバMは、当該KEY毎にワーカーサーバWを割り当ててそれぞれについて処理を行うようにワーカーサーバWに要求を行う。ワーカーサーバWは、マスタサーバMからの要求を受け、Reduce定義に従って、それぞれがKEY−VALUE型のデータセットについての処理を行い、その結果を集約し、位置関係に関する所定の処理、例えば、インデックスデータの生成処理の結果を得る。
本実施形態では、図1(2)に示す地図A(メッシュA1,A2,A3,A4,A5,A6を含む)の領域地図要素100に対する処理を複数のワーカーサーバWで行うこととし、その一例として、領域地図要素100と点地図要素110との関係を判定することとしている。ここで、領域地図要素100はビルや、駅から所定の距離以内の地域等のようなある一定の範囲を有する地図要素であり、点地図要素110はレストラン等のような地図上で点として扱われる地図要素である。本実施形態では、点地図要素110が領域地図要素100に包含されるか否か、一例としては、あるレストランがあるビル内に存在するか否かを判定する処理を、複数のワーカーサーバWが分散して行う。
[分散処理システム1の機能構成]
次に、図2を参照して、分散処理システム1の機能構成について説明する。
分散処理システム1は、メッシュを識別するメッシュID(メッシュ識別データ)をKEYとするKEY−VALUE型のデータセットを生成する領域地図要素処理2及び点地図要素処理3(Mapタスク)と、生成したKEY−VALUE型のデータセットに対する処理をメッシュ毎に(メッシュ単位で)行う領域内外判定処理4(Reduceタスク)と、を実行する。なお、領域地図要素処理2、点地図要素処理3及び領域内外判定処理4は、ワーカーサーバWが実行するが、個々のワーカーサーバWは、領域地図要素処理2、点地図要素処理3及び領域内外判定処理4の何れの処理を実行するサーバとしても機能することが可能で、マスタサーバMが必要に応じて振り分ける。そのため、1つのワーカーサーバWが、領域地図要素処理2だけでなく点地図要素処理3を実行する場合もあり、また、領域内外判定処理4を実行する場合もある。また、マスタサーバM自身は、ワーカーサーバWとしても機能し得る。
領域地図要素処理2を実行するため、分散処理システム1は、記憶制御手段21と、領域取得手段22と、メッシュ特定手段23と、データ生成手段24と、実行処理振り分け手段25と、を含んで構成される。
記憶制御手段21は、分散処理システム1の任意の場所に設けられた記憶手段5を制御し、記憶手段5に所定の情報を記憶する。
ここで、記憶手段5は、メッシュDB51と地図要素DB52とを含んで構成される。メッシュDB51は、図3(1)に示すように、メッシュを識別するメッシュIDに対応付けて、当該メッシュの地図上の位置を示す位置情報を含む地図情報を記憶する。なお、メッシュとは、地図を緯度経度に区画したものである。地図要素DB52は、図3(2)に示すように、地図要素IDに対応付けて、範囲指定情報及び地図要素名を含む地図要素情報を記憶する。なお、地図要素は、点要素の場合もあり、四角形の範囲を有する地図要素の場合もあり、更には多角形の範囲を有する地図要素の場合もある。このような地図要素の範囲指定情報の指定は、任意に行うことができるが、本実施形態では地図要素の頂点の緯度経度を指定することで、地図要素の範囲指定情報を指定することとしている。
記憶制御手段21は、例えば、メッシュIDと当該メッシュIDの位置情報とを関連付けて記憶手段5のメッシュDB51に記憶する。
なお、ワーカーサーバWが各種情報を読み出す先を特定可能であれば、当該ワーカーサーバW自体が記憶手段5を備える必要はない。記憶手段5は、ワーカーサーバWがアクセス可能な任意の場所に設けることができる。勿論、記憶手段5にアクセスする処理を行う領域地図要素処理2及び点地図要素処理3を実行するワーカーサーバWが自ノードの備える記憶手段5からデータを読み出して処理を行うことが、データローカリティ上好適であるといえる。
領域取得手段22は、処理すべき領域地図要素が地図上で占める閉領域を表す範囲指定情報を、任意の場所に設けられた地図要素DB52から読み出す。
メッシュ特定手段23は、メッシュDB51からメッシュID及び位置情報を読み出して、領域取得手段22が読み出した範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する。
ここで、領域取得手段22が取得した範囲指定情報が表す閉領域は一定の範囲からなる領域地図要素に係る範囲指定情報が表す閉領域であるため、メッシュ特定手段23が特定するメッシュは複数存在する可能性がある。そこで、本実施形態では、メッシュ特定手段23は、基点決定手段231と、基点メッシュ特定手段232と、隣接メッシュ特定手段233と、包含判定手段234と、を含むこととしている。
基点決定手段231は、範囲指定情報が表す閉領域に含まれる任意の地点情報を決定する。任意の地点情報としては、例えば、領域地図要素の中心点や領域地図要素の頂点等が考えられるが、本実施形態では、任意の地点情報として領域地図要素の中心点を用いている。そのため、基点決定手段231は、領域地図要素の中心点を算出する。なお、中心点の算出は、任意の方法により行うことができ、所定のアルゴリズムに従って算出することとしてもよく、地図要素DB52に予め記憶しておくこととしてもよい。
基点メッシュ特定手段232は、範囲指定情報が表す閉領域に含まれる任意の地点情報(中心点)が属するメッシュを基点メッシュとして特定する。
隣接メッシュ特定手段233は、基点メッシュに隣接するメッシュを隣接メッシュとして特定する。なお、隣接メッシュ特定手段233は、基点メッシュの周囲8個(隣接する)のメッシュだけでなく、領域地図要素の大きさによっては、基点メッシュの周囲24個、49個・・・等といった基点メッシュの周囲のメッシュを取得することとしてもよい。
包含判定手段234は、隣接メッシュに範囲指定情報が表す閉領域の少なくとも一部が含まれるか否かを判定する。
ここで、図4を参照して、メッシュ特定手段23が範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを取得する処理の流れについて説明する。
はじめに、メッシュ特定手段23(基点決定手段231)は、領域地図要素100の任意の地点情報である中心点100Aを決定する(図4(1))。
続いて、メッシュ特定手段23(基点メッシュ特定手段232)は、中心点100Aの属するメッシュA5を特定する(図4(2))。
続いて、メッシュ特定手段23(隣接メッシュ特定手段233)は、メッシュA5の周囲のメッシュである隣接メッシュA1,A2,A3,A4,A6・・・を取得する(図4(3))。
最後に、メッシュ特定手段23(包含判定手段234)は、隣接メッシュA1,A2,A3,A4,A6・・・のそれぞれについて、範囲指定情報が表す閉領域の少なくとも一部が含まれるか否かを判定し、範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する(図4(4))。図4(4)では、領域地図要素100の範囲指定情報が表す閉領域の少なくとも一部を含むメッシュとして、メッシュA2,A3,A5,A6が特定されている。
図2に戻り、データ生成手段24は、メッシュ特定手段23が取得したメッシュをKEY、領域取得手段22が読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを、メッシュ特定手段23が取得したメッシュの数だけ生成する。例えば、データ生成手段24は、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」といったKEY−VALUE型のデータセットを生成する。
実行処理振り分け手段25は、KEY−VALUE型のデータセットをシャッフル、すなわち、KEY−VALUE型のデータセットをKEYでソートしメッシュ単位で(メッシュ特定手段23が取得したメッシュ毎に)領域内外判定処理4を実行するワーカーサーバWに振り分けることで、生成したKEY−VALUE型のデータセットに対する処理をメッシュ単位に分散して領域内外判定処理4を実行させる。
続いて、点地図要素処理3を実行するため、分散処理システム1は、記憶制御手段31と、点要素取得手段32と、メッシュ特定手段33と、データ生成手段34と、実行処理振り分け手段35と、を含んで構成される。なお、点地図要素処理3を実行するための各手段は、領域地図要素処理2を実行するための各手段と基本的に同一であるため、詳細な説明は省略する。
記憶制御手段31は、分散処理システム1の任意の場所に設けられた記憶手段5を制御し、記憶手段5に所定の情報を記憶する。点要素取得手段32は、点地図要素の範囲指定情報(地点情報)を地図要素DB52から読み出す。メッシュ特定手段33は、点要素取得手段32が読み出した範囲指定情報を含むメッシュを特定する。ここで、点地図要素の範囲指定情報は、範囲を有しない地点情報であるため、メッシュ特定手段33は、当該地点情報が属するメッシュを特定すれば足りる。無論、点地図要素が一定の範囲を有する場合には、メッシュ特定手段23と同様の処理を行うこととしてもよい。
データ生成手段34は、メッシュ特定手段33が特定したメッシュをKEY、点要素取得手段32が読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを生成する。例えば、あるレストラン(レストラン1〜N)があるビル内に存在するか否かを判定する場合、データ生成手段34は、「KEY:レストラン1の属するメッシュ、VALUE:レストラン1の範囲指定情報」、「KEY:レストラン2の属するメッシュ、VALUE:レストラン2の範囲指定情報」・・・「KEY:レストランNの属するメッシュ、VALUE:レストランNの範囲指定情報」といったKEY−VALUE型のデータセットを生成する。
実行処理振り分け手段35は、KEY−VALUE型のデータセットをシャッフル、すなわち、KEY−VALUE型のデータセットをKEYでソートしメッシュ単位で領域内外判定処理4を実行するワーカーサーバWに振り分けることで、生成したKEY−VALUE型のデータセットに対する処理をメッシュ単位に分散して領域内外判定処理4を実行させる。このことにより、領域内外判定処理4を実行するワーカーサーバWは、KEYとして割り当てられたメッシュIDが示す所定のメッシュに含まれる範囲指定情報を全て得ることができる。
このように、領域内外判定処理4を実行するワーカーサーバWには、KEYでソートされたKEY−VALUE型のデータセットが提供されるため、分散処理システム1では、同一のKEYを持つデータセットについて、同一のワーカーサーバWで領域地図要素及び点地図要素の位置関係に関する処理を並列実行させることができる。
続いて、領域内外判定処理4を実行するため、分散処理システム1は、メッシュ単位で地図上の位置関係に関する処理を実行する処理実行手段41を含んで構成される。
例えば、領域内外判定処理4を実行するワーカーサーバWには、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」及び「KEY:メッシュA2、VALUE:メッシュA2に属するレストランの範囲指定情報」といったKEY−VALUE型のデータセットが与えられ、当該ワーカーサーバWにおいて、地図上の位置関係に関する処理、一例としては、当該レストランが領域地図要素100内に存在するか否かが判定される。レストランが領域地図要素100内に存在するか否かの判定(空間演算)は、例えば、オープンソースソフトウェアであるJTS等を用いることで実現することができる。
なお、実行処理振り分け手段25(35)で処理が振り分けられたワーカーサーバWが領域内外判定処理4を実行するものであるが、振り分けによっては領域地図要素処理2又は点地図要素処理3を実行したワーカーサーバW自体が領域内外判定処理4を実行するワーカーサーバWになり得る。
[分散処理システム1を構成する各サーバのハードウェア構成]
以上説明した分散処理システム1を構成する各サーバのハードウェアは、一般的なコンピュータによって構成することができる。一般的なコンピュータは、例えば、制御部として、中央処理装置(CPU)を備える他、記憶部として、メモリ(RAM、ROM)、ハードディスク(HDD)及び光ディスク(CD、DVD等)を、ネットワーク通信装置として、各種有線及び無線LAN装置を、表示装置として、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイを、入力装置として、例えば、キーボード及びポインティング・デバイス(マウス、トラッキングボール等)を適宜備え、これらは、バスラインにより接続されている。このような一般的なコンピュータにおいて、CPUは、分散処理システム1を構成する各サーバを統括的に制御し、各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
[分散処理システム1の処理]
次に、図5を参照して、分散処理システム1の処理について説明する。
[領域地図要素処理2]
S201:領域取得手段22は、領域地図要素が地図上で占める閉領域を表す範囲指定情報を地図要素DB52から読み出す。
例えば、点地図要素111,112,113,114,115,116が領域地図要素100に存在するか否かを判定する場合(図6参照)、領域取得手段22は領域地図要素100の範囲指定情報を地図要素DB52から読み出す。
S202:メッシュ特定手段23は、メッシュDB51からメッシュID及び位置情報を読み出して、S201で読み出した範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する。具体的には、メッシュ特定手段23は、領域地図要素100の中心点を決定し、当該中心点の属する基点メッシュを特定する。そして、メッシュ特定手段23は、基点メッシュに隣接する隣接メッシュを取得するとともに、当該隣接メッシュのうち、範囲指定情報が表す閉領域の少なくとも一部を含むメッシュを特定する。更に、メッシュ特定手段23は、当該閉領域の全ての部分について上記特定を完了するまで、当該隣接メッシュに更に隣接する隣接メッシュを取得して同様の処理を繰り返す。
図6では、領域地図要素100の範囲指定情報が表す閉領域の少なくとも一部を含むメッシュとして、メッシュA2,A3,A5,A6が取得されている。
S203:データ生成手段24は、S202で特定したメッシュをKEY、S201で読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを、S202で特定したメッシュの数だけ生成する。
図6では、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」といったKEY−VALUE型のデータセットが生成される。
S204:実行処理振り分け手段25は、KEY−VALUE型のデータセットをメッシュ単位で領域内外判定処理4を実行するワーカーサーバWに振り分ける。
図6では、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちのあるワーカーサーバW(又は複数、以下同じ)に振り分け、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの別のワーカーサーバWに振り分け、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分け、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分ける。
[点地図要素処理3]
S301:点要素取得手段32は、点地図要素の範囲指定情報(地点情報)を地図要素DB52から読み出す。
図6では、領域地図要素100内に存在するか否かを判定する点地図要素111,112,113,114,115,116の範囲指定情報を地図要素DB52から読み出す。
S302:メッシュ特定手段33は、メッシュDB51からメッシュID及び位置情報を読み出して、S301で読み出した範囲指定情報を含むメッシュを特定する。
図6では、点地図要素111を含むメッシュとしてメッシュA2を取得し、点地図要素112を含むメッシュとしてメッシュA5を取得し、点地図要素113を含むメッシュとしてメッシュA5を取得し、点地図要素114を含むメッシュとしてメッシュA3を取得し、点地図要素115を含むメッシュとしてメッシュA3を取得し、点地図要素116を含むメッシュとしてメッシュA6を取得する。
S303:データ生成手段34は、S302で特定したメッシュをKEY、S301で読み出した範囲指定情報をVALUEとするKEY−VALUE型のデータセットを生成する。
図6では、「KEY:メッシュA2、VALUE:点地図要素111の範囲指定情報」、「KEY:メッシュA3、VALUE:点地図要素114の範囲指定情報」、「KEY:メッシュA3、VALUE:点地図要素115の範囲指定情報」、「KEY:メッシュA5、VALUE:点地図要素112の範囲指定情報」、「KEY:メッシュA5、VALUE:点地図要素113の範囲指定情報」、「KEY:メッシュA6、VALUE:点地図要素116の範囲指定情報」といったKEY−VALUE型のデータセットが生成される。
S304:実行処理振り分け手段35は、KEY−VALUE型のデータセットをメッシュ単位で領域内外判定処理4を実行するワーカーサーバWに振り分ける。
図6では、「KEY:メッシュA2、VALUE:点地図要素111の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちのあるのワーカーサーバWに振り分け、「KEY:メッシュA3、VALUE:点地図要素114の範囲指定情報」及び「KEY:メッシュA3、VALUE:点地図要素115の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの別のワーカーサーバWに振り分け、「KEY:メッシュA5、VALUE:点地図要素112の範囲指定情報」及び「KEY:メッシュA5、VALUE:点地図要素113の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分け、「KEY:メッシュA6、VALUE:点地図要素116の範囲指定情報」を領域内外判定処理4を実行するワーカーサーバWのうちの更に別のワーカーサーバWに振り分ける。
[領域内外判定処理4]
S401:領域内外判定処理4を実行するワーカーサーバWのそれぞれは、S204及びS304で振り分けられたKEY−VALUE型のデータセットを、メッシュ単位で取得する。なお、領域内外判定処理4を実行するワーカーサーバWは、HadoopのMultipleInputsクラスを利用することで、領域地図要素100の範囲指定情報及び点地図要素111〜116の範囲指定情報を同時に取得し読み込むことができる。
図6では、メッシュA2の処理を行うワーカーサーバWは、「KEY:メッシュA2、VALUE:領域地図要素100の範囲指定情報」及び「KEY:メッシュA2、VALUE:点地図要素111の範囲指定情報」を取得し、メッシュA3の処理を行うワーカーサーバWは、「KEY:メッシュA3、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA3、VALUE:点地図要素114の範囲指定情報」及び「KEY:メッシュA3、VALUE:点地図要素115の範囲指定情報」を取得し、メッシュA5の処理を行うワーカーサーバWは、「KEY:メッシュA5、VALUE:領域地図要素100の範囲指定情報」、「KEY:メッシュA5、VALUE:点地図要素112の範囲指定情報」及び「KEY:メッシュA5、VALUE:点地図要素113の範囲指定情報」を取得し、メッシュA6の処理を行うワーカーサーバWは、「KEY:メッシュA6、VALUE:領域地図要素100の範囲指定情報」及び「KEY:メッシュA6、VALUE:点地図要素116の範囲指定情報」を取得する。
S402:処理実行手段41は、地図上の位置関係に関する処理、例えば、点地図要素111〜116が領域地図要素100内に存在するか否かを判定する処理を実行する。なお、地図上の位置関係に関する処理は、例えば、オープンソースソフトウェアであるJTS等を用いることで実現することができる。
図6では、点地図要素112、115は、領域地図要素100内に存在すると判定され、点地図要素111,113,114,116は、領域地図要素100内に存在しないと判定される。
[分散処理システム1の効果]
本実施形態の分散処理システム1では、複数のメッシュにまたがる領域地図要素100に関する処理をメッシュ単位に分散して行う際に、領域地図要素100がまたがるメッシュの全てに領域地図要素100の範囲指定情報を持たせることとしている。これにより、領域地図要素の位置や大きさに関係なく、分散処理に最適なメッシュ単位でスケール可能な分散処理を行うことができる。
また、分散処理システム1による分散処理の結果、一例として、図7のようなインデックスDBを生成することができる。例えば、あるレストランがあるビルの中に存在していることを示すインデックスデータを生成することができる。また、例えば、環七(東京都道318号環状七号線)通り沿いの一定の範囲を領域地図要素として設定すれば、あるラーメン屋が環七沿いのものであることを示すインデックスデータを生成することもできる。また、駅から徒歩5分圏内の範囲を領域地図要素として設定すれば、ある店がある駅から徒歩5分以内に存在することを示すインデックスデータを生成することができる。
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
1 分散処理システム
2 領域地図要素処理
21 記憶制御手段
22 領域取得手段
23 メッシュ特定手段
24 データ生成手段
25 実行処理振り分け手段
3 点地図要素処理
31 記憶制御手段
32 点要素取得手段
33 メッシュ特定手段
34 データ生成手段
35 実行処理振り分け手段
4 領域内外判定処理
41 処理実行手段
5 記憶手段
51 メッシュDB
52 地図要素DB
M マスタサーバ
W ワーカーサーバ

Claims (3)

  1. 所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理システムであって、
    前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御手段と、
    前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得手段と、
    前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得手段と、
    前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得手段が読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得手段が読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定手段と、
    特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定手段が特定したメッシュの数だけ生成するデータ生成手段と、
    生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定手段が特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分け手段と、
    を備える分散処理システム。
  2. 前記メッシュ特定手段は、
    前記範囲指定情報に含まれる任意の地点情報が属する基点メッシュを特定する基点メッシュ特定手段と、
    前記基点メッシュ特定手段が特定した前記基点メッシュに隣接する隣接メッシュを特定する隣接メッシュ特定手段と、
    前記隣接メッシュ特定手段が特定した前記隣接メッシュに前記範囲指定情報が示す前記閉領域の少なくとも一部が含まれるか否かを判定する包含判定手段と、
    を備える請求項1に記載の分散処理システム。
  3. 所定の複数のメッシュに区画可能な地図を構成する地図データの分散処理を、前記所定の複数のメッシュ毎に、ネットワークを介して接続された複数のサーバの一をシャッフルにより割り当てて並列実行する分散処理方法であって、
    前記複数のサーバの少なくとも一部が、前記地図データ、及び、前記所定の複数のメッシュをそれぞれ識別するメッシュ識別データと当該メッシュの前記地図上の位置を示す位置情報とを関連付けて記憶手段に記憶する記憶制御ステップと、
    前記地図に含まれる領域地図要素が前記地図上で占める閉領域を表す範囲指定情報を前記記憶手段から読み出す領域取得ステップと、
    前記地図に含まれる点地図要素が前記地図上で位置する点を表す範囲指定情報を前記記憶手段から読み出す点要素取得ステップと、
    前記記憶手段から前記メッシュ識別データ及び前記位置情報を読み出して、複数の前記メッシュのうち、前記領域取得ステップで読み出した前記範囲指定情報が表す前記閉領域の少なくとも一部を含むメッシュ及び前記点要素取得ステップで読み出した前記範囲指定情報が表す前記点を含むメッシュを特定するメッシュ特定ステップと、
    特定した前記メッシュを識別するメッシュ識別データをKEYとし、前記範囲指定情報をVALUEとするKEY−VALUE型データを前記メッシュ特定ステップが特定したメッシュの数だけ生成するデータ生成ステップと、
    生成した前記KEY−VALUE型データを用いて、前記領域地図要素及び前記点地図要素の位置関係に関する処理を、前記メッシュ特定ステップが特定した前記メッシュ毎に、前記複数のサーバの一をシャッフルにより割り当てて並列実行させる実行処理振り分けステップと、
    を備える分散処理方法
JP2010198978A 2010-09-06 2010-09-06 分散処理システム及び分散処理方法 Expired - Fee Related JP5171904B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010198978A JP5171904B2 (ja) 2010-09-06 2010-09-06 分散処理システム及び分散処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010198978A JP5171904B2 (ja) 2010-09-06 2010-09-06 分散処理システム及び分散処理方法

Publications (2)

Publication Number Publication Date
JP2012058836A JP2012058836A (ja) 2012-03-22
JP5171904B2 true JP5171904B2 (ja) 2013-03-27

Family

ID=46055907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010198978A Expired - Fee Related JP5171904B2 (ja) 2010-09-06 2010-09-06 分散処理システム及び分散処理方法

Country Status (1)

Country Link
JP (1) JP5171904B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI459223B (zh) * 2012-08-15 2014-11-01 Hon Hai Prec Ind Co Ltd 海量資料索引建立系統及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217000A (ja) * 2008-03-11 2009-09-24 Fujitsu Microelectronics Ltd 描画処理装置、描画処理プログラムおよび描画処理方法

Also Published As

Publication number Publication date
JP2012058836A (ja) 2012-03-22

Similar Documents

Publication Publication Date Title
US10394847B2 (en) Processing data in a distributed database across a plurality of clusters
CN106156138B (zh) 兴趣点的空间索引的建立、周边搜索方法和装置
Walshaw et al. Multilevel mesh partitioning for heterogeneous communication networks
JP2018518733A (ja) ファイル操作方法及び装置
US20160026355A1 (en) Accessible chart navigation using object neighborhood
JP2016103132A (ja) 有限要素演算プログラム、有限要素演算装置および有限要素演算方法
JP5967786B2 (ja) シミュレーション装置
CN105637489A (zh) 分布式数据库系统中的异步垃圾收集
CN110569225A (zh) 一种数据存储方法及系统
JP2006244480A (ja) エンティティルックアップシステム
Goga et al. Performance analysis of WRF simulations in a public cloud and HPC environment
Vasavi et al. Framework for geospatial query processing by integrating cassandra with hadoop
JP5171904B2 (ja) 分散処理システム及び分散処理方法
Fox Large scale data analytics on clouds
KR100983479B1 (ko) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
RU2610587C2 (ru) Способ пространственного хранения объекта посредством гибкой иерархической структуры и постоянный носитель информации
US11610151B2 (en) Distribution system, data management apparatus, data management method, and computer-readable recording medium
KR102147175B1 (ko) 공간 데이터 처리효율 증대를 위한 공간키 기반 공간 데이터 관리방법, 장치 및 프로그램
CN114116948A (zh) 地理矢量数据空间缓冲区分析方法、装置、设备及介质
Huang et al. Distributed asteroid discovery system for large astronomical data
Kim et al. Design and implementation strategy of a parallel agent-based Schelling model
JP7136227B2 (ja) 経路探索支援装置、経路探索支援方法、及びプログラム
KR101940251B1 (ko) 하둡 맵리듀스 기반의 공간 지식 추출 시스템
JP6515686B2 (ja) 並列計算機システム、保守装置、保守方法、および保守プログラム
JP6817504B1 (ja) 位置空間識別方法、位置空間識別子付与装置及びコンピュータプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121225

R150 Certificate of patent or registration of utility model

Ref document number: 5171904

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees