2018年 秋期 応用情報技術者試験 問4

並列分散処理基盤を用いたビッグデータ活用

S 社は,スーパーマーケットやドラッグストアなどの小売チェーン(以下,チェーンという)で販売されている衣料用洗剤や食器用洗剤などを製造する大手消費財メーカである。商品企画部による商品力強化や,営業部による拡販施策検討のために,取引先である複数のチェーンから匿名化された POS データを週次で購入し,独自に集計・分析することになった。購入する POS データの件数は約 10 億件/週と予想されるので,情報システム部の T さんをリーダとして,並列分散処理基盤を利用した POS データ集計・分析システムを構築することになった。

並列分散処理基盤のシステム構成

T さんは,S 社が保有している並列分散処理基盤のシステム構成を調査した。並列分散処理基盤のシステム構成を図 1 に示す。

注記 マスタサーバ,クライアント#1及びクライアント#2のローカルストレージは省略する。

処理対象のデータはブロック単位に分割され,物理的には,各スレーブサーバの内部バスに接続されたローカルストレージに分散して格納されているが,論理的には,単一のファイルシステム(以下,分散ファイルシステムという)で管理されている。

分散ファイルシステムのブロックサイズは 128M バイトに設定されている。任意のスレーブサーバ 1 台に障害が生じた場合でも処理を継続できるように,ブロックは 2台のスレーブサーバのローカルストレージに非同期で複製して格納されている。ファイル名,ブロック位置,所有者,権限などのメタデータは,マスタサーバが保持している。

マスタサーバはクライアントからジョブの実行依頼を受け付け,ジョブを複数の表実行単位(以下,タスクという)に分割し,処理対象のデータを格納しているスレーブサーバに対してタスクの実行を依頼する。データを分割した際にデータサイズのばらつきが小さいほど,タスクが均等に分散される。また,同一ジョブ内のタスク間で処理するデータが依存しており,タスクが逐次的に処理される場合,それらのタスクは分散されない。各スレーブサーバで同時に実行可能なタスクの数は,CPU の物理コア数-1 を上限とする。並列分散処理基盤全体で同時に実行するタスクの数を多重度という。

マスタサーバの仕様は,CPU 物理コア数 2,メモリ容量 8G バイト,ローカルストレージのディスク I/O 速度 60 M バイト/秒である。スレーブサーバの仕様は,CPU 物理コア数 4,メモリ容量 16 G バイト,ローカルストレージのディスク I/O 速度 60 M バイト/秒である。

T さんが調査結果を上司の U 課長に報告したところ,①可用性の観点からリスクがあるとの指摘を受けた。本リスクを評価した結果,それを受容してシステム構築を進めることになった。

POS データ集計・分析システムのジョブ構成

POS データ集計・分析システムを構成するジョブの一覧を表 1 に示す。

表1 POSデータ集計・分析システムを構成するジョブの一覧
記号ジョブ名処理内容処理対象のデータジョブの特性目標処理時間(時間)
平均ファイルサイズ(Mバイト)ファイル数(個)分割単位データサイズのばらつき
(A)データ形式統一POSデータを統一のデータ形式に変換する。購入するPOSデータ3001,400チェーン別・日別2.0
(B)店舗別売上集計売上数量を店舗別に集計する。(A)の処理結果1006,300店舗別0.5
(C)商品別売上集計売上数量を商品別に集計する。(A)の処理結果2010,000a1.0
(D)売上予測重回帰分析の偏回帰係数を求め,求めた偏回帰係数を用いて自社商品の売上数量を予測する。(C)の処理結果1600商品別6.0
注記 データサイズのばらつきとは,データサイズの偏差(ファイルの分割単位で処理対象のデータを分割した際の各分割データのサイズとその平均との差)から求めた指標であり,各ジョブにおけるデータサイズの散らばりの度合いを意味する。

POS データの購入元は 200 チェーンあり,POS データは日別にファイル分割されている。1 週間分の POS データのファイル数は 1,400 個であり,総データサイズは 420 G バイトとなる。店舗数は全チェーン合わせて 6,300 店舗であり,取り扱われている商品数は 10,000 点である。そのうち,S 社の商品は 600 点である。

ジョブの実行順序は(A),(B),(C),(D)の順であり,各ジョブは同時には実行されない。

毎週月曜日 23 時までには,前週月曜日から日曜日までの全ての POS データが分散ファイルシステムに格納される。商品企画部や営業部からは,毎週火曜日の 9 時には最新の分析結果を見られるようにしてほしいとの要望が挙がっているので,月曜日 23 時から火曜日 9 時までの間に一連のジョブを完了させる必要がある。

性能テスト

POS データ集計・分析システムを開発し,性能テストを実施したところ,②ジョブ(B)が目標処理時間内に完了しないことが判明した。ジョブ(B)実行中のマスタサーバ及びスレーブサーバ#1 のリソース使用状況を図 2 に示す。

なお,スレーブサーバ#2 及びスレーブサーバ#3 のリソース使用状況もスレーブサーバ#1 のリソース使用状況と類似している。

図2 各サーバのリソース使用状況
CPU使用率グラフ
(%)
100
80
60
40
20
0
0 10 20 30 40 50 60(分)
メモリ使用量グラフ
(Gバイト)
16
12
8
4
0
0 10 20 30 40 50 60(分)
ディスクI/O速度グラフ
(Mバイト/秒)
70
60
40
20
0
0 10 20 30 40 50 60(分)
凡例
― マスタサーバ
‐‐‐‐‐ スレーブサーバ#1

注記 各グラフの横軸はジョブ開始時からの経過時間を表す。

T さんは,ボトルネックとなったリソースを特定して適切な対策を講じることによって,ジョブ(B)を目標処理時間内に完了させることができた。

スケールアウトの計画

今後は POS データの購入元を増やし,分析精度を高めることを検討している。1年後には取り扱う POS データの件数を現在の 10 億件/週から 30 億件/週に増大させることが目標である。処理対象のデータ件数が増えると一部のジョブが目標処理時間内に完了しなくなる懸念があるので,並列分散処理基盤のスレーブサーバの増設(以下,スケールアウトという)を計画しておくことになった。性能テストにおいて調査した,POS データの件数と処理時間の関係,及び多重度と処理時間の関係を図 3 に示す。T さんは,1 年後のスケールアウトに向けて予算を確保するために,図 3 を基に追加が必要となるスレーブサーバの台数を試算した。

図3 性能テストにおいて調査した性能特性
POSデータの件数と処理時間の関係グラフ
POSデータの件数と処理時間の関係
(多重度が9の場合)
(時間)
7.0  6.0  6.0  6.0  6.0  6.0
6.0  ●‥‥‥‥●‥‥‥‥●‥‥‥‥●‥‥‥‥●

4.0

2.0             1.6  2.0
     0.8  1.2  ■   ■
  0.4  ■   ■  0.8     1.0
0.0 0.2▲‥‥▲0.4‥✕‥▲‥‥‥‥▲‥‥✕‥▲0.5
  0.1  0.2 0.3  0.4
  2   4   6   8   10(億件)
多重度と処理時間の関係グラフ
多重度と処理時間の関係
(時間)(POSデータの件数が10億件の場合)
16.0
   13.5●
12.0    ●
            9.0
8.0  8.0       ●
   7.3●‥‥‥‥‥‥‥‥‥‥‥‥‥6.0
                     ●
4.0  2.9▲‥‥‥‥‥‥▲4.0‥‥‥‥‥‥2.0
            2.7‥‥‥‥‥‥▲1.0
0.0          1.2‥‥‥‥‥‥‥✕0.5
   1     3     9(多重度)
凡例 ●:ジョブ(A) ‐・‐:ジョブ(B) ‐✕‐:ジョブ(C) ‥●‥:ジョブ(D)

1 年後に POS データの件数が 3 倍になること,及び図 3 の POS データの件数と処理時間の関係におけるジョブ(A)~(C)の傾向から,1 年後の並列分散処理基盤に要求されるスループットは現行の並列分散処理基盤の 3 倍と推定される。処理時間が POS データの件数に依存しないジョブ(D)はスケールアウトにおいて考慮する必要がない。図 3 の多重度と処理時間の関係から,スケールアウトにおいて考慮する必要があるジョブのうち,多重度を増やしても処理時間が最も短縮されにくいジョブはジョブ(A)である。多重度を 3 倍にした場合,ジョブ(A)におけるスループットは 2 倍となる。並列分散処理基盤のスループットを 3 倍にするために最低限必要な多重度は,現行の並列分散処理基盤のb倍にあたるcである。したがって,1 年後までに少なくともd台のスレーブサーバを追加する必要がある。

出典:平成30年度 秋期 応用情報技術者試験 午後 問4