Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Cloudera Impalaをサービスに 
組み込む時に苦労した話 
 
2014年年10⽉月31⽇日 
株式会社セラン RD戦略略室 
須⽥田幸憲 
@sudabon 
Copyright © CELL▲NT Corp. All right...
⾃自⼰己紹介 
須⽥田幸憲(@sudabon) 
株式会社セラン RD戦略略室 室⻑⾧長 
経歴 
l 1997〜~2004 NEC 中央研究所 / ネットワークの研究 
l 2005〜~2006 BIGLOBE / BtoBサービスの開発...
セランの事業紹介 
1. MOBYLOG(モビログ) 
l Webアクセス解析・広告効果測定サービス 
l 2005年年12⽉月にサービス開始 
l PC、スマホ、ケータイ、スマホアプリの計測が可能 
l ケータイでの解析が強み(MOB...
impalaの活⽤用⽅方法と課題 
• Webの⾏行行動履履歴の検索索⽤用データベース 
– サーバ台数に対してリニアにスケールアウト 
– クエリを同時並列列的に実⾏行行した場合でも⾼高速に動作 
– OLAP関数やJOINを含むクエリも⾼高...
課題への対処 
1. メモリ不不⾜足によるクエリ失敗 
– ビッグデータをスモールデータに変換して利利⽤用 
– 管理理画⾯面からの検索索時のみで利利⽤用、集計時は利利⽤用しない 
2. ⾏行行レコードの更更新/削除 
– 追加のデータは別パー...
当初のイメージ 
6 
1つのクラスタに共通のテーブルを作成し、 
⽤用途に応じてクエリエンジンを選択 
アクセスログデータ 
impala / Hive+MapReduce 
HDFS 
Copyright © CELL▲NT Corp. A...
実際に取った⼿手段 
7 
2つのクラスタを作成し、⽤用途に応じてクラスタを選択 
アクセスログデータ 
(ビッグデータ) 
Hive+MapReduce 
HDFS 
サマライズした 
アクセスログデータ 
(スモールデータ) 
impala...
課題への対処 
1. メモリ不不⾜足によるクエリ失敗 
– ビッグデータをスモールデータに変換して利利⽤用 
– 管理理画⾯面からの検索索時のみで利利⽤用、集計時は利利⽤用しない 
2. ⾏行行レコードの更更新/削除 
– 追加のデータは別パー...
xross dataサービスの集計システム構成 
9 
Cloudera 
Managerで 
⼀一括管理理 
ログ 
バッチ 
サーバ 
Hiveクエリでデータ抽出 
Hiveクラスタ 
MapReduce 
(CDH4.6) 
追加のみのデ...
RDBMSからHDFSへのデータコピー 
• Sqoop import -‐‑‒-‐‑‒directでコピー 
• テーブルサイズに応じて 
– サイズ:⼩小 ⇒ テーブル全体をコピー 
– サイズ:⼤大 ⇒ 差分コピー 
• 差分コピー※ 
...
課題への対処 
1. メモリ不不⾜足によるクエリ失敗 
– ビッグデータをスモールデータに変換して利利⽤用 
– 管理理画⾯面からの検索索時のみで利利⽤用、集計時は利利⽤用しない 
2. ⾏行行レコードの更更新/削除 
– 追加のデータは別パー...
HDFSファイルフォーマット 
• Hiveクラスタ 
– Gzip圧縮のTextFile 
• バッチ処理理⽤用なので、クエリの⾼高速性よりも、圧縮率率率と利利便便性を重視 
• impalaクラスタ 
– Snappy圧縮のRCFile 
...
各種フォーマットのパフォーマンス⽐比較 
13 
impala version 1.0 
36.61 
26.083 
29.736 
24.024 
19.586 
16.2 
0510152025303540 
Snappy 
Snappy...
顧客データ分離離+フォーマット変換 
• パーティションが異異なる2つのテーブル 
– 暫定テーブル(変換前) 
• フォーマット:TextFile 
• パーティション 
– 処理理実⾏行行⽇日:YYYYMMDD 
– バッチグループ 
– ...
• ユーザプロファイル 
デモ 
– 様々な条件に合致する顧客を⾼高速に抽出可能 
• ファネル分析 
– 様々な条件に合致するセッション数と顧客を⾼高速に抽出可能 
15 
Copyright © CELL▲NT Corp. All righ...
impala 2.0リリース 
• 2014/10/14リリース 
– EXISTS句句、IN句句内のサブクエリをサポート 
– RANK()、LAG()、LEAD()などの解析関数をサポート 
– get_̲json_̲objectはマイルス...
ご静聴ありがとうございました 
 
Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
Upcoming SlideShare
Loading in …5
×

Cloudera Impalaをサービスに組み込むときに苦労した話

5,767 views

Published on

Impala Meetupで発表した資料

Published in: Internet
  • Be the first to comment

Cloudera Impalaをサービスに組み込むときに苦労した話

  1. 1. Cloudera Impalaをサービスに 組み込む時に苦労した話 2014年年10⽉月31⽇日 株式会社セラン RD戦略略室 須⽥田幸憲 @sudabon Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  2. 2. ⾃自⼰己紹介 須⽥田幸憲(@sudabon) 株式会社セラン RD戦略略室 室⻑⾧長 経歴 l 1997〜~2004 NEC 中央研究所 / ネットワークの研究 l 2005〜~2006 BIGLOBE / BtoBサービスの開発 SNIP l 2012/8〜~ 現職 Hadoop歴:約2年年半 好きなHadoopエコシステム:Hive 2 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  3. 3. セランの事業紹介 1. MOBYLOG(モビログ) l Webアクセス解析・広告効果測定サービス l 2005年年12⽉月にサービス開始 l PC、スマホ、ケータイ、スマホアプリの計測が可能 l ケータイでの解析が強み(MOBYLOG ENGINE) • 旧Omniture社(現Adobe社)のSiteCatalyst、及びWebTrends社 のWebTrends AnalyticsにモジュールとしてOEM提供 2. xross data(クロスデータ) l LITEなマーケティング・オートメーション・ツール l 2014年年8⽉月にサービス開始 l Webの⾏行行動履履歴から顧客をセグメントして、 メール・リマーケティングするためのツール 3 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  4. 4. impalaの活⽤用⽅方法と課題 • Webの⾏行行動履履歴の検索索⽤用データベース – サーバ台数に対してリニアにスケールアウト – クエリを同時並列列的に実⾏行行した場合でも⾼高速に動作 – OLAP関数やJOINを含むクエリも⾼高速に動作 例例)過去1ヶ⽉月間の訪問回数が X 回以上で、且つ... • 課題 1. メモリ量量以上のデータ量量を処理理するとクエリが失敗する 2. ⾏行行単位での更更新/削除が不不可 3. クエリ⾼高速化のためにはフォーマット変換が必要 4. EXISTS、IN句句内サブクエリ、get_̲json_̲objectがない 4 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  5. 5. 課題への対処 1. メモリ不不⾜足によるクエリ失敗 – ビッグデータをスモールデータに変換して利利⽤用 – 管理理画⾯面からの検索索時のみで利利⽤用、集計時は利利⽤用しない 2. ⾏行行レコードの更更新/削除 – 追加のデータは別パーティションに挿⼊入 – 更更新/削除が必要なデータはRDBMSを介して上書き 3. フォーマット変換 – 顧客のデータを分離離する際にフォーマットも変換 • バッチの処理理時間の制約により、複数顧客を⼀一括処理理 • しかし、データサイズが⼤大きいため、データ分離離が必要 5 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  6. 6. 当初のイメージ 6 1つのクラスタに共通のテーブルを作成し、 ⽤用途に応じてクエリエンジンを選択 アクセスログデータ impala / Hive+MapReduce HDFS Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  7. 7. 実際に取った⼿手段 7 2つのクラスタを作成し、⽤用途に応じてクラスタを選択 アクセスログデータ (ビッグデータ) Hive+MapReduce HDFS サマライズした アクセスログデータ (スモールデータ) impala HDFS Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  8. 8. 課題への対処 1. メモリ不不⾜足によるクエリ失敗 – ビッグデータをスモールデータに変換して利利⽤用 – 管理理画⾯面からの検索索時のみで利利⽤用、集計時は利利⽤用しない 2. ⾏行行レコードの更更新/削除 – 追加のデータは別パーティションに挿⼊入 – 更更新/削除が必要なデータはRDBMSを介して上書き 3. フォーマット変換 – 顧客のデータを分離離する際にフォーマットも変換 • バッチの処理理時間の制約により、複数顧客を⼀一括処理理 • しかし、データサイズが⼤大きいため、データ分離離が必要 8 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  9. 9. xross dataサービスの集計システム構成 9 Cloudera Managerで ⼀一括管理理 ログ バッチ サーバ Hiveクエリでデータ抽出 Hiveクラスタ MapReduce (CDH4.6) 追加のみのデータ更更新・削除が必要なデータ データコピー Hive impala 1.4 (CDH5.1)RDBMS impalaクラスタ 管理理 画⾯面 WebHDFS クエリ Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  10. 10. RDBMSからHDFSへのデータコピー • Sqoop import -‐‑‒-‐‑‒directでコピー • テーブルサイズに応じて – サイズ:⼩小 ⇒ テーブル全体をコピー – サイズ:⼤大 ⇒ 差分コピー • 差分コピー※ 1. テーブルをコピー(base_̲t) 2. Sqoop importでRDBMSから差分コピー(temp_̲t) 3. base_̲tとtemp_̲tからマージしてVIEWを作成(view_̲t) 4. view_̲tのデータで元のテーブルを上書き 注)⾏行行の削除が発⽣生する場合は削除フラグのカラムを設置 ※ Four Steps Strategy for Incremental Updates in Apache Hive on Hadoop http://jp.hortonworks.com/blog/four-‐‑‒step-‐‑‒strategy-‐‑‒incremental-‐‑‒updates-‐‑‒hive/ 10 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  11. 11. 課題への対処 1. メモリ不不⾜足によるクエリ失敗 – ビッグデータをスモールデータに変換して利利⽤用 – 管理理画⾯面からの検索索時のみで利利⽤用、集計時は利利⽤用しない 2. ⾏行行レコードの更更新/削除 – 追加のデータは別パーティションに挿⼊入 – 更更新/削除が必要なデータはRDBMSを介して上書き 3. フォーマット変換 – 顧客のデータを分離離する際にフォーマットも変換 • バッチの処理理時間の制約により、複数顧客を⼀一括処理理 • しかし、データサイズが⼤大きいため、データ分離離が必要 11 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  12. 12. HDFSファイルフォーマット • Hiveクラスタ – Gzip圧縮のTextFile • バッチ処理理⽤用なので、クエリの⾼高速性よりも、圧縮率率率と利利便便性を重視 • impalaクラスタ – Snappy圧縮のRCFile • ⾼高速性のみを重視(ParquetFile+Snappyの次に⾼高速) • データ依存だが、ParquetFile+Snappyの場合、正規表現での検索索 クエリで様々な問題が発⽣生(クラッシュ、ノーレス、エラー) • ユーザMLにはすべて報告済み 12 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  13. 13. 各種フォーマットのパフォーマンス⽐比較 13 impala version 1.0 36.61 26.083 29.736 24.024 19.586 16.2 0510152025303540 Snappy Snappy Gzip Snappy Gzip No Comp. Parquet File FileRCFile Sequence Text File Avg. Job Latency [sec] cf. Performance Evaluation of Cloudera Impala GA http://www.slideshare.net/sudabon/performance-‐‑‒evaluation-‐‑‒of-‐‑‒cloudera-‐‑‒impala-‐‑‒ga Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  14. 14. 顧客データ分離離+フォーマット変換 • パーティションが異異なる2つのテーブル – 暫定テーブル(変換前) • フォーマット:TextFile • パーティション – 処理理実⾏行行⽇日:YYYYMMDD – バッチグループ – サービス⽤用のテーブル(変換後) • フォーマット:Snappy圧縮のRCFile • パーティション – 処理理実⾏行行⽇日:YYYYMMDD – 顧客ID • 2つのテーブル間でデータ移設 変換前のデータ群 グループ #1 顧客10社 A 社 – ⾼高速なクエリを実現するフォーマットに変換 – サイズの⼤大きいデータを、⼩小さいデータに変換 14 グループ #2 顧客10社 グループ #3 顧客10社 グループ #4 顧客10社 B 社 C 社・・・・・X 社 変換後のデータ群 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  15. 15. • ユーザプロファイル デモ – 様々な条件に合致する顧客を⾼高速に抽出可能 • ファネル分析 – 様々な条件に合致するセッション数と顧客を⾼高速に抽出可能 15 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  16. 16. impala 2.0リリース • 2014/10/14リリース – EXISTS句句、IN句句内のサブクエリをサポート – RANK()、LAG()、LEAD()などの解析関数をサポート – get_̲json_̲objectはマイルストーンに含まれる – ”spill to disk”メカニズムの導⼊入 ⇒ OutOfMemoryから解放 • ただ、User MLを⾒見見ていると... – Regexp_̲Replace/Extractにバグが... – 2.0に移⾏行行すると、パフォーマンス劣劣化が... じっくり検証し、将来的にはimpala 2.0へ移⾏行行予定 16 Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /
  17. 17. ご静聴ありがとうございました Copyright © CELL▲NT Corp. All right Reserved. h t t p : / / w w w . x d a t a . j p /

×