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.

Impala概要 道玄坂LT祭り 20150312 #dogenzakalt

5,110 views

Published on

道玄坂LT祭りで発表した資料です

Published in: Technology
  • Be the first to comment

Impala概要 道玄坂LT祭り 20150312 #dogenzakalt

  1. 1. 1© Cloudera, Inc. All rights reserved. Impala - Hadoop⽤用の最⾼高の 分析エンジン 嶋内  翔, Cloudera株式会社
  2. 2. 2© Cloudera, Inc. All rights reserved. ⾃自⼰己紹介 •  セールスエンジニア •  2011年年4⽉月にClouderaの最初の⽇日本⼈人社員として⼊入社 •  お客様がCloudera製品を活⽤用できるように⼀一緒に議論論するのがメインの仕 事 • 実際は技術に関係する業務は全部⾏行行っている •  email: sho@cloudera.com •  twitter: @shiumachi
  3. 3. 3© Cloudera, Inc. All rights reserved. Hadoop⽤用分析エンジンの要件 複数のユーザによる同時利利⽤用時の性能 思考と同等の速度度で共同作業する 互換性 BIツールやSQLなどの使い慣れたインタフェースが使 えること ユーザビリティ 様々なアプリケーションから連携可能 柔軟性 全てのデータに対し他のHadoopフレームワークと連 携してクエリを実⾏行行できること Hadoop ネイティブ フレームワーク全体で⼀一貫したリソース管理理、メタ データ、セキュリティ、運⽤用管理理ができること
  4. 4. 4© Cloudera, Inc. All rights reserved. •  ビッグデータのためのインタラク ティブBI / 分析 •  データの発⾒見見 •  探索索型分析 •  定常クエリ⽤用データストア ⼀一般的な使い⽅方 セキュリティと運⽤用管理理 プロセス 取込み Sqoop,  Flume 変換 MapReduce,   Hive,  Pig,   Spark モデル 機械学習 SAS,  R,  Spark,   Mahout サーブ NoSQL  データ ベース HBase ストリーミング Spark   Streaming ディスカバー 分析データベー ス Impala 検索索 Solr 無制限のストレージ              HDFS,  HBase YARN,  Cloudera  Manager, Cloudera  Navigator データ処理理と分析のための単⼀一プラットフォーム
  5. 5. 5© Cloudera, Inc. All rights reserved. Cloudera  Impalaとは? •  Hadoop  クラスタのためのオープンソースのMPP  SQL  クエリエンジン • http://impala.io/ •  Cloudera  /  MapR  /  Amazon  /  Oracle  がサポートを提供 •  HDFS  や  HBase  上のデータに対し、仮想的なビューとしてテーブルを作 成することができる • スキーマは  Hive  メタストアに保存 •  ODBC  /  JDBC  で接続可能 •  Kerberos  /  LDAP  で認証可能
  6. 6. 6© Cloudera, Inc. All rights reserved. Impala のアーキテクチャ HDFS  DN   Query  Exec  Engine   Query  Coordinator   Query  Planner   HBase   HDFS  DN   Query  Exec  Engine   Query  Coordinator   Query  Planner   HBase  HDFS  DN   Query  Exec  Engine   Query  Coordinator   Query  Planner   HBase   ODBC  /  JDBC   SQL  App   クライアント・インタフェース   メタデータ   Hive  Metastore   HDFS  NN   State  Store  Catalogd  
  7. 7. 7© Cloudera, Inc. All rights reserved. Impala  1.x  のバージョン履履歴 •  Impala  1.0  (2013/04) •  SQL-‐‑‒92  サポート  (サブクエリ除く) •  ネイティブHadoopファイルフォーマット •  Parquet、Avro、テキスト、SequenceFileなど •  Kerberos認証 •  ODBC  /  JDBC  ドライバ •  Impala  1.1 •  Apache  Sentry  を使ったRBAC(ロールベースアクセス制御 •  Impala  1.2 •  UDF  /  UDAF •  コストベースのJOIN順序最適化 •  Impala  1.3  /  CDH  5.0 •  リソース管理理機能 •  Impala  1.4  CDH  5.1  (2014/07) •  SQL  の拡張  (DECIMAL、  ORDER  BY  without  LIMIT、etc.) •  HDFS  キャッシング
  8. 8. 8© Cloudera, Inc. All rights reserved. Impala  2.0  (2014/10) •  SQL互換性の拡張 • SQL:2003  分析/ウィンドウ関数 • サブクエリ(WHERE句句内、EXISTS、IN) • CHAR  /  VARCHAR • GRANT  /  REVOKE  (Sentry  使⽤用) •  Hash  Table  を  disk  へ書き出し可能に • join  and  aggregate  tables  の制限が不不要に
  9. 9. 9© Cloudera, Inc. All rights reserved. SQL-‐‑‒on-‐‑‒Hadoopベンチマーク  (2014/09) •  ⽐比較対象 •  Impala  1.4.0 •  Presto  0.74 •  Stinger  phase  3  (Hive  0.13.0) •  Spark  SQL  1.1 •  ベンチマーク⼿手法 •  TPC-‐‑‒DS •  Impala  ⽤用  TPC-‐‑‒DS  ベンチマークツール  https://github.com/cloudera/impala-‐‑‒tpcds-‐‑‒kit •  同⼀一ハードウェアに対し同⼀一⼿手順でのテスト •  公平な⽐比較のための細かい調整 •  コストベース最適化なしの  SQL-‐‑‒92  形式の  JOIN   •  Presto  ⽤用に  JVM  のチューニング •  それぞれのエンジンに最適なファイルフォーマットを使⽤用 •  詳細はこちら   http://blog.cloudera.com/blog/2014/09/new-‐‑‒benchmarks-‐‑‒for-‐‑‒sql-‐‑‒on-‐‑‒hadoop-‐‑‒impala-‐‑‒1-‐‑‒4-‐‑‒widens-‐‑‒the-‐‑‒ performance-‐‑‒gap/
  10. 10. 10© Cloudera, Inc. All rights reserved. Impala  ベンチマーク:  マルチユーザ
  11. 11. 11© Cloudera, Inc. All rights reserved. Impala  ベンチマーク:  スループット
  12. 12. 12© Cloudera, Inc. All rights reserved. 技術トピック
  13. 13. 13© Cloudera, Inc. All rights reserved. 分析 / ウィンドウ関数 •  2.0 以降降でのサポート •  サポートされる関数 • RANK() / DENSE_RANK() • FIRST_VALUE() / LAST_VALUE() • LAG() / LEAD() • ROW_NUMBER()
  14. 14. 14© Cloudera, Inc. All rights reserved. 解析関数の例例   select stock_symbol, closing_date, closing_price,! lag(closing_price,1) over (partition by stock_symbol order by closing_date) as "yesterday closing"! from stock_ticker! order by closing_date;! +--------------+---------------------+---------------+-------------------+! | stock_symbol | closing_date | closing_price | yesterday closing |! +--------------+---------------------+---------------+-------------------+! | JDR | 2014-09-13 00:00:00 | 12.86 | NULL |! | JDR | 2014-09-14 00:00:00 | 12.89 | 12.86 |! | JDR | 2014-09-15 00:00:00 | 12.94 | 12.89 |! | JDR | 2014-09-16 00:00:00 | 12.55 | 12.94 |! | JDR | 2014-09-17 00:00:00 | 14.03 | 12.55 |! | JDR | 2014-09-18 00:00:00 | 14.75 | 14.03 |! | JDR | 2014-09-19 00:00:00 | 13.98 | 14.75 |! +--------------+---------------------+---------------+-------------------+! ⽇日毎に終値と前⽇日の終値を出⼒力力
  15. 15. 15© Cloudera, Inc. All rights reserved. HBase 連携 •  Impala は  HBase のテーブルに対し SELECT や INSERT を実⾏行行可能 •  ユースケース •  巨⼤大なファクトテーブルをImpalaに持ち、より⼩小さいディメンジョンテーブルをHBase で 持つ •  ⾼高速にインクリメントされるカウンタをHBaseに保存する •  例例: WebサイトのPVや、SNS の投稿での投票の数など •  ⾮非常に幅広い(そして通常は疎な)テーブルをHBaseで持つ •  例例: オンラインサービスのユーザ情報 •  1⾏行行インサートも可能 •  INSERT … VALUES ImpalaHBase external systems put SELECT * FROM hbase_tbl … INSERT / INSERT … VALUESget, scan
  16. 16. 16© Cloudera, Inc. All rights reserved. アドミッションコントロール •  ⾼高速・軽量量なリソース管理理機構 •  並列列ワークロードに対するリソースの過剰利利⽤用を避ける • 設定した限界値を超えたらクエリはキューイングされる •  全  impalad で動作 • SPOF なし
  17. 17. 17© Cloudera, Inc. All rights reserved. アドミッションコントロール •  設定可能なリソースプール •  クエリの最⼤大並列列実⾏行行数 •  キューの最⼤大⻑⾧長 •  プールのメモリ総量量 •  設定⽅方法は2通り •  Cloudera Manager の「動的リソースプール」 •  fair-scheduler.xml と llama-site.xml を⼿手動編集する
  18. 18. 18© Cloudera, Inc. All rights reserved. アドミッションコントロールの例例 並列列実⾏行行可能な クエリ数 クエリキューの 最⼤大⻑⾧長 100 10 10 1 最⼤大メモリ 1000 GB 100 GB Group A Group B
  19. 19. 19© Cloudera, Inc. All rights reserved. Hue Web UI (CDHに付属)
  20. 20. 20© Cloudera, Inc. All rights reserved. 連携機能 •  JDBC  /  ODBC  ドライバ • 各種BIツールと連携可能 •  MicroStrategy,  QlikView、SAS、Tableau  など 出典: https://zoomdata.zendesk.com/hc/en-us/articles/203813488-Date-and-Time-Formats-Supported-By-Zoomdata
  21. 21. 21© Cloudera, Inc. All rights reserved. Impala  を試す •  デモサイト(ログイン不不要) •  http://demo.gethue.com/ •  Quick  Start  VM  (全部⼊入りVMイメージ) •  http://www.cloudera.com/content/cloudera/en/downloads/quickstart_̲vms/cdh-‐‑‒5-‐‑‒3-‐‑‒x.html •  Cloudera  Live •  有償(14⽇日間無料料)だが4ノードの完全なクラスタで試⽤用可能 •  Tableau、ZoomDataとの連携も試⽤用可能 •  http://www.cloudera.com/content/cloudera/en/products-‐‑‒and-‐‑‒services/cloudera-‐‑‒live.html •  Cloudera  Director   •  AWS上でインスタンスまで含めてクラスタの構築・管理理が可能 •  http://www.cloudera.com/content/cloudera/en/downloads/cloudera-‐‑‒director/1-‐‑‒1-‐‑‒0.html •  Amazon  EMR •  http://docs.aws.amazon.com/ja_̲jp/ElasticMapReduce/latest/DeveloperGuide/emr-‐‑‒impala.html
  22. 22. 22© Cloudera, Inc. All rights reserved. Thank  you  
  23. 23. 23© Cloudera, Inc. All rights reserved. もっと深い技術トピック
  24. 24. 24© Cloudera, Inc. All rights reserved. Impala  クラスタのサイジング •  サイジングガイド • http://www.cloudera.com/content/cloudera/en/documentation/ core/latest/topics/impala_̲cluster_̲sizing.html • ノード:  CPU12コア、メモリ64GB、2TB  HDD  x  12本 • 10並列列で15TBのデータに対し、クエリを流流すときに平均20秒で結果を 返したい場合には20ノードほど必要になる、という概算は可能 • 正確なサイジングは必ず実データに対し実クエリを流流して計測すること •  スキーマの設計、クエリパターンによってメモリ消費量量が変わるので詳細 はドキュメント参照のこと
  25. 25. 25© Cloudera, Inc. All rights reserved. Impala  のチューニング •  ⽂文字列列型ではなく数値型を使う • ⽂文字列列型:  メモリ消費、ディスク容量量、計算速度度いずれも効率率率悪い •  パーティション数 • 多くても10万まで。少ない⽅方がいい • http://www.slideshare.net/cloudera/the-‐‑‒impala-‐‑‒ cookbook-‐‑‒42530186 •  Parquet   • 読み込みは速いが書き込みは遅いということに注意 • read-‐‑‒onceデータの場合は  SequenceFile  +  Snappy  を使おう
  26. 26. 26© Cloudera, Inc. All rights reserved. もっともっと 深い技術トピック
  27. 27. 27© Cloudera, Inc. All rights reserved. http://www.cidrdb.org/cidr2015/Papers/CIDR15_Paper28.pdf
  28. 28. 28© Cloudera, Inc. All rights reserved. http://www.vldb.org/pvldb/vol7/p1295-floratou.pdf

×