• 検索結果がありません。

Hadoop LZO圧縮機能の検証

N/A
N/A
Protected

Academic year: 2021

シェア "Hadoop LZO圧縮機能の検証"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)

文書名 ... Hadoop LZO 圧縮機能の検証 リビジョン ... 1 初版 ... 2012/01/30

ホワイトペーパー

Hadoop LZO 圧縮機能の検証

対象 Apache Hadoop

対象バージョン Apache Hadoop 0.20.203.0 / LZO 2.03

概要 本書は、Hadoop の処理対象データを LZO 形式で圧縮した場合、「処理時間」と「HDFS 使用量」の関係と効果について確認する事を目的として実施した、検証の内容、およびそ の結果を記載したものです。 検証の結果、LZO 圧縮を使用することで HDFS により多くのデータを格納するとともに、 Map/Reduce の処理時間短縮、ならびに HDFS へのデータインポート/エクスポート時間 の短縮が期待できます。 前提条件など Hadoop の概要を理解していること。 開示範囲 一般 ■ 本書のご利用に関して 本ドキュメントは作成時点の最新情報を基に記載しています。ご使用機器の OS バージョン等必ずご確認の上でご活用をお願いいたします。 また、本書の正確さに最大限の努力をはらっていますが、本書の無謬性、その他について一切保証はいたしません。 本書の利用に基づくいかなる結果、損害にも責任を負いかねますので、ご了承ください。

(2)

目次

1

はじめに

... 3

1.1 検証の目的 ... 3 1.2 圧縮形式 ... 3

2

検証作業概要

... 4

2.1 LZO圧縮の使用の流れ ... 4 2.2 検証の観点 ... 4

3

検証環境

... 5

3.1 システム構成 ... 5 3.2 システム構成詳細 ... 5 3.3 検証用データとMap/Reduceアプリケーション ... 5

4

検証結果

... 6

4.1 HDFS使用量 ... 6 4.2 処理時間 ... 7 4.3 Map/Reduce処理時間のi/o wait率 ... 8 4.4 参考情報(データ圧縮処理時間) ... 9

5

考察

... 10

5.1 圧縮時間 ... 10

6

結論

... 12

6.1 HDFS容量の効率的活用 ... 12 6.2 処理時間の短縮 ... 12 6.3 システム全体・運用の最適化 ... 12

(3)

1

はじめに

日立ソリューションズでは、オープンソース分散処理基盤「Apache Hadoop」(以下、「Hadoop」)の導入をご検討されて いるお客様向けに、実機検証/アセスメント支援から、構築・運用時における環境構築/アプリケーション開発、製品保 守サポートまでワンストップでのサービスをご提供しています。 この度、Hadoop 関連技術・ノウハウ蓄積の一環として、LZO 圧縮を使用した動作検証を実施しました。 本書では、この動作検証の背景・目的から、検証結果について纏めます。

1.1 検証の目的

HDFS に格納するデータの圧縮による効果と目的を以下に示します。  HDFS 容量の効率的活用 格納するファイルを圧縮し、クラスタ全体のハードディスク容量を効率的に活用することで、よりおおくのデ ータを HDFS に格納できることが期待されます。(【図 1.1】)  処理時間の短縮 Hadoop で処理を行うデータサイズが圧縮により小さくなるため、インポート/エクスポート時間および Map/Reduce 処理時間の短縮が期待できます。データサイズの縮小は、ネットワーク帯域の効率的活用にも つながります。 上記のパフォーマンス向上、および Hadoop を使用したデータ処理時間の全体的な短縮が実際に可能かを確 認するため、マスタ・スレーブノート計 12 台の検証環境を作成し動作検証を行いました。 【図 1.1】

1.2 圧縮形式

圧縮形式には、gzipやbzip2 など様々な形式がありますが、今回の検証ではApache Hadoop 0.20 系のバージョ

ンでMap/Reduceのスプリット機能を早い段階からサポートしているLZO形式 1に注目し検証しました。Hadoopの

LZO対応ライブラリは、GPLライセンスであるため、Apache Hadoop 0.20.203 には同梱されていません。Hadoopを

LZO圧縮データに対応させるためには、別途ソース2

1 今回の検証で利用したパッケージは lzo-2.03-3.1.el6.x86_64(及び関連するパッケージ)です。

を入手し設定を行う必要があります。

(4)

2

検証作業概要

本章では、Hadoop で LZO 圧縮されたデータを使用する際の簡単な説明、および検証の観点や検証作業の流 れなど実施した検証について記載します。

2.1 LZO 圧縮の使用の流れ

LZO 圧縮を使用する場合は、HDFS にデータをインポートした後、Map/Reduce 処理がスプリットに対応できるよ う、インデックスファイルを作成する必要があります。データの流れを【図 2.1】に示します。 【図 2.1】 ① 圧縮 LZO を使用して、データの圧縮を行います。 ② インポート ①で圧縮したデータを HDFS へインポートします。 ③ インデックスファイルの生成 hadoop コマンドを使用して、インデックスファイルを生成します。コマンドの例を以下に示します。 ④ Map/Reduce 処理 圧縮ファイルおよびインデックスファイルをインプットデータとして Map/Reduce 処理を実行します。

2.2 検証の観点

今回の検証では主に HDFS 使用量と処理時間に着目し、非圧縮時と圧縮時の比較を行いました。具体的には、 圧縮を利用した場合の HDFS 使用量と、以下の【表 2.1】に示す各処理における処理時間を測定し、比較しまし た。 【表 2.1】 ♯ 区分 非圧縮時 圧縮時 備考 1 インポート ○ ○ 2 インデックスファイル作成 - ○ 3 Map/Reduce 処理の実行 ○ ○ ○:測定 -:非該当 hadoop jar ${JAR_PATH}/hadoop-lzo-X.X.X.jar com.hadoop.compression.lzo.DistributedLzoIndexer /lzo_files

(5)

3

検証環境

本章では、検証環境の詳細について記載します。

3.1 システム構成

本検証用に構築した環境のシステム構成は、【図 3.1】の通りです。 【図 3.1】

3.2 システム構成詳細

利用した検証環境のマシンやバージョン等は【表 3.1】の通りです。 【表 3.1】 ♯ 項目 内容 1 HW 機種 Hitachi HA8000-bd/BD10

2 CPU Intel(R) Core(TM) i5 CPU

3 メモリ DDR3 SDRAM(PC3-8500) 4GB 4 HDD マスタ系ノード・Client 500GB 5 スレーブノード 750GB 6 OS CentOS 6.1 7 JDK 1.6.0_27 8 Hadoop Hadoop 0.20.203.0 設定は、基本的にデフォルト。 (レプリケーション数:3)

3.3 検証用データと Map/Reduce アプリケーション

約 100GB3 3 データサイズは、約 10GB×10 ファイル=約 100GB です。レコード数は、158,540,014 件×10(ファイル数)=計 1,585,400,140 件で、その中 にターゲットレコードは 14×10(ファイル数)=140 件含まれています。 のデータを用意し、ターゲットレコード(TARGETID)を検索するMap/Reduceアプリを使用しました。 データのレコード形式(サンプル)を以下に示します。 1970/01/01 09:00:00,user-415,AAAAAAAAAAAAAAAAAAAA-10.0.55.51:17337 1970/01/01 09:33:19,TARGETID,AAAAAAAAAAAAAAAAAAAA-10.0.12.58:16114

(6)

4

検証結果

本章では、検証結果について記載します。

4.1 HDFS 使用量

LZO 圧縮を使用して約 100GB のデータを圧縮したところ、約 22GB となり 22%まで圧縮されました。 Hadoopコマンド4を使用して、Hadoopに認識されているHDFSの使用容量を取得したところ、【表 4.1】の結果とな りました。今回の検証では、レプリケーション数をデフォルトの 3 に設定してあるため、インポート後のデータ量が約 3 倍の値になっています。 【表 4.1】 ♯ 項目 非圧縮 圧縮 備考 1 Configured Capacity(GB) 6853 GB 6853 GB 2 DFS Used(GB) 302 GB 65 GB 約 79% 削減 3 DFS Used(%) 5 % 1 % データインポート後の HDFS 使用量を平均値でグラフにしたところ、【図 4.1】のようになりました。 【図 4.1】 上記のデータから以下のことが分かります。  HDFS の使用量が LZO 圧縮を使用することで、非圧縮時にくらべて 5 分の1に縮小されている。

(7)

4.2 処理時間

各処理時間は【表 4.2】5、および【表 4.3】の結果となりました。 【表 4.2】 ♯ 区分 非圧縮 圧縮 備考 1 インポート 0:28:44 0:06:56 21 分 48 秒 削減 2 インデックスファイル作成 0:06:01 6 分 01 秒 追加 3 Map/Reduce 処理の実行 0:16:47 0:10:21 6 分 26 秒 削減 合計 0:45:31 0:23:18 22 分 13 秒 削減 (49%削減) 【表 4.3】 ♯ 区分 ケース 1回目 2回目 3回目 4回目 5回目 平均 1 インポート 非圧縮 0:28:48 0:28:47 0:28:23 0:28:33 0:29:07 0:28:44 圧縮 0:06:40 0:06:30 0:06:32 0:07:11 0:07:48 0:06:56 2 インデックスファイル作成 非圧縮 - - - - 圧縮 0:05:54 0:06:03 0:06:00 0:06:08 0:06:00 0:06:01 3 Map/Reduce 処理の実行 非圧縮 0:16:45 0:16:50 0:16:44 0:16:54 0:16:44 0:16:47 圧縮 0:10:19 0:10:22 0:10:22 0:10:19 0:10:22 0:10:21 Map/Reduce 処理時間を平均時間でグラフにしたところ、【図 4.2】のようになりました。 【図 4.2】 上記の結果から、以下のことがわかります。  Map/Reduce 処理時間が、LZO 圧縮を使用することで非圧縮時の約 60%まで短縮されている。 5 圧縮・非圧縮時で、それぞれ5回連続で実施して取得したデータです。

(8)

4.3 Map/Reduce 処理時間の i/o wait 率

Map/Reduce処理中の、各スレーブノードのCPUにおけるi/o wait率6は、【表 4.4】の様な結果となりました。なお、

【表 4.4】は、サンプルとして 1 回目の測定値を表にまとめたものです。2-5 回の測定値も同様の値です。

【表 4.4】

♯ slave 毎の i/o wait 非圧縮 圧縮 備考

1 001 5.56 % 1.42 % 2 002 4.46 % 1.11 % 3 003 5.32 % 1.34 % 4 004 4.17 % 1.43 % 5 005 4.75 % 1.14 % 6 006 4.62 % 1.23 % 7 007 4.68 % 1.37 % 8 008 3.46 % 1.22 % 9 009 4.30 % 1.18 % 10 010 5.20 % 1.17 % 平均 4.65 % 1.26 % 73%改善 i/o wait 率をグラフにしたところ、以下の【図 4.3】のようになりました。 【図 4.3】 上記の結果から以下のことが分かります。

 Map/Reduce 処理における i/o wait が、LZO 圧縮を使用することで非圧縮時の約 27%まで小さくなっている。

(9)

4.4 参考情報(データ圧縮処理時間)

今回の検証で、データを LZO 形式で圧縮しました。圧縮時間は、ハードウェアのスペックに大きく依存する為、 参考値として結果を【表 4.5】に示します。 【表 4.5】 ♯ 区分 1回目 2回目 3回目 平均 1 圧縮時間 0:20:28 0:20:31 0:20:11 0:20:23 データ圧縮に利用したマシンやバージョン等は【表 4.6】の通りです。 【表 4.6】 ♯ 項目 内容 1 HW

機種 Hitachi HA8000 TS20AJ

2 CPU Xeon X5570 x 2 (Quad Core 2.93Hz)

3 メモリ DDR3-1333(PC3-10600) 48GB(8GBx6)

4 HDD SAS 300GB x 8 RAID5(7D1P) LSIMegaRAID

(10)

5

考察

本章では、検証によって得られたデータに対する考察を記載します。

5.1 圧縮時間

【表 4.2】のデータから、今回の検証環境においてインポートからMap/Reduce処理の実行までの平均時間の和 を比較すると、非圧縮時が 45 分 31 秒、圧縮時が 23 分 18 秒と約 1/2となり、【図 5.1】のように処理時間短縮効果 を得ることができています。 【図 5.1】 なお、4.4 章の参考値を利用し、クライアントでのデータ圧縮時間まで含めたトータル時間は 43 分 41 秒となり、 非圧縮時の 45 分 31 秒に対し、5%程度の時間短縮となります。データ圧縮処理は、ハードウェアスペックに大きく 依存します。高性能なマシンを用いる事で、全体処理時間をより短縮する効果は期待できます。【図 5.2】 【図 5.2】 圧縮時間 (参考値での仮定)

(11)

また、本検証のような検索システムの場合、圧縮、インポート、およびインデックスファイル作成は初 回のみ行われます。 検索処理(Map/Reduce 処理)のみが、用途に応じて複数回実行されるため、非常に大きな処理時間短縮 効果を期待することができます。 今回の検証環境において、10 回ターゲットレコードを検索した場合の処理時間比較を【図 5.3】に示し ます。 【図 5.3】

(12)

6

結論

上記の検証結果および考察から、LZO 圧縮の使用に関して以下の結論を出しました。

6.1 HDFS 容量の効率的活用

 LZO 圧縮の利用により、非使用時に比べ最大で約 5 倍のデータを格納でき、HDFS の効率的活用が可能と なる。  HDD 容量のスケールアップや、Hadoop システムのスケールアウト以外のデータ格納容量の拡張手段の 1 つ として、LZO 圧縮の利用が可能となる。利用方法や設定も、システム構成や運用に影響を与えにくく、容易で ある。

6.2 処理時間の短縮

 インポート処理から Map/Reduce 処理時間の短縮が期待できる。  全体的な処理時間で LZO 圧縮利用が有効か否かは、圧縮・解凍時間に依存する。圧縮時間は、マシン性 能の依存度が高い。

6.3 システム全体・運用の最適化

 圧縮率の高いデータの場合、HDFS 容量・処理時間・システム全体の効率改善が得られ易い。また、データ 圧縮処理自体を高スペックのマシンで実施する事で、より高い改善が得られ易い。  HDFS 配置済データの再利用率が高いジョブ実行となる運用では、乗数的に効果を得られ易い。  データ自体のサイズ縮小により、インポート/エクスポート時などのネットワーク帯域の占有時間やトラフィック をデータ縮小率相当低減することが可能となる。 以上

参照

関連したドキュメント

評価 ○当該機器の機能が求められる際の区画の浸水深は,同じ区 画内に設置されているホウ酸水注入系設備の最も低い機能

FSIS が実施する HACCP の検証には、基本的検証と HACCP 運用に関する検証から構 成されている。基本的検証では、危害分析などの

※証明書のご利用は、証明書取得時に Windows ログオンを行っていた Windows アカウントでのみ 可能となります。それ以外の

評価 ○当該機器の機能が求められる際の区画の浸水深は,同じ区 画内に設置されているホウ酸水注入系設備の最も低い機能

○当該機器の機能が求められる際の区画の浸水深は,同じ区 画内に設置されているホウ酸水注入系設備の最も低い機能

また︑以上の検討は︑

ご使用になるアプリケーションに応じて、お客様の専門技術者において十分検証されるようお願い致します。ON

ご使用になるアプリケーションに応じて、お客様の専門技術者において十分検証されるようお願い致します。ON