Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
1	
1	
HiveとImpalaのおいしいとこ取り
『プログラミング Hive』『Hadoop 第3版』
刊行記念 Hadoopセミナー
2013年年7⽉月24⽇日
株式会社セラン
R&D戦略略室  須⽥田幸憲
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
祝!刊⾏行行
2
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v 須⽥田幸憲(@sudabon)
v 株式会社セラン  R&D戦略略室  室⻑⾧長
v 経歴
l 1997〜~2004  NEC  中央研究所  /  ネットワークの研究
l 2005〜~2006  BIGLOBE  /  BtoBサービスの開発
l 2012/8〜~          現職
v Hadoop歴:約1年年
v 好きなHadoopエコシステム:Hive
⾃自⼰己紹介
3
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v  MOBYLOG(モビログ)
l  Webアクセス解析・広告効果測定サービス
l  2005年年12⽉月にサービス開始
l  PC、スマホ、ケータイ、スマホアプリの計測が可能
l  ケータイでの解析が強み(MOBYLOG  ENGINE)
•  旧Omniture社(現Adobe社)のSiteCatalyst、及びWebTrends社の
WebTrends  AnalyticsにモジュールとしてOEM提供
v  Xdata  collect(クロスデータ・コレクト)
l  クラウド型のログストレージサービス
l  2013年年5⽉月にサービス開始
l  Webサーバで取得できる情報に加えて、セッション情報やユーザイベ
ントも保存でき、CSVとしてダウンロード可能
l  ⽉月間50万件までは無料料で利利⽤用可能
セランの事業紹介
4
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v MOBYLOGでは分析が難しいバッチ処理理
l ⻑⾧長期間を対象に個別のユーザイベントを抽出する場合
v 顧客単位で個別に分析コンサルティング
l 物販サイト(EC)
l ディジタルコンテンツ販売
l コンテンツのポータルサイト
Hadoopの活⽤用⽅方法
5
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v 前職の動画配信ベンチャー企業にて、動画の閲覧ロ
グの集計でHadoopを利利⽤用
v システム環境
l Amazon  EMR
•  Aliveクラスタではなく、Transientクラスタ
l Hadoop  Streaming
•  S3に保存したログを、EC2上で動作するPHPからコントロール
Hadoopエコシステムとの関わり(1)
6
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v AWSのユーザ会の懇親会で、某社エンジニアのRさん
に、オンプレでHadoopの構築について詳細にアドバ
イスいただきました!
Hadoopエコシステムとの関わり(2)
7
・オンプレだったら、ClouderaのHadoopディスト
リビューションのCDHがあるよ
・Cloudera Managerのフリー版があって、GUI操
作で複数台のインストールも簡単にできるよ
・Hiveを使えば、Java以外の言語でもSQLライク
なクエリ実行で、MapReduce処理できるよ
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v バッチ開発時にアドホックにクエリを実⾏行行
l ログ内容のチェックをするためにHiveクエリを実⾏行行
l バッチのクエリのデバッグ時にHiveクエリを実⾏行行
v Hive/MapReduceの処理理完了了を待つケースが頻繁
にあり、時間短縮する⽅方法を模索索していた
Cloudera  Impalaがリリース!
Hiveより7〜~45倍の⾼高速化
即、導⼊入しました
Hadoopエコシステムとの関わり(3)
8
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
Impalaのリリースと性能評価
9
2012/10/24
バージョン0.1 beta
2012/11/14
バージョン0.2 beta
2012/12/05
バージョン0.3 beta
2013/01/19
バージョン0.4 beta
2013/02/05
バージョン0.5 beta
2013/02/27
バージョン0.6 beta
2013/04/15
バージョン0.7 beta
2013/05/01
バージョン1.0
2013/06/18
バージョン1.0.1
2012/11/02
5台のクラスタで評価 > slideshareで資料公開
2012/12/07
14台のクラスタで評価 > @ITに寄稿 > slideshareで資料公開
2013/03/06
14台のクラスタで評価 > slideshareで資料公開
2013/05/01
14台のクラスタで評価 > slideshareで資料公開
HiBenchを用いた評価
RCFileの評価
mem_limitオプション、Parquetの評価
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
Our  System  Environment
10
v  Install  using  Cloudera  Manager  Free  Edition  4.5.2
Master Slave
11  Servers
All  servers  are  connected  with  1Gbps  Ethernet  through  an  L2  switch
Active
NameNode
DataNode
TaskTracker
Impalad
Stand-‐‑‒by
NameNode
JobTracker
statestored
3  Servers
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
DataNode
TaskTracker
Impalad
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v CPU
l Intel  Core  2  Duo  2.13  GHz  with  Hyper  Threading
v Memory
l 4GB
v Disk
l 7,200  rpm  SATA  mechanical  Hard  Disk  Drive  *  1
v OS
l Cent  OS  6.2
Our  Server  Specification
11
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v  Use  CDH4.2.1  +  Impala  1.0
v  Use  hivebench  in  open-‐‑‒sourced  benchmark  tool  “HiBench”
l  https://github.com/hibench
v  Modified  datasets  to  1/10  scale
l  Default  configuration  generates  table  with  1  billion  rows
v  Modified  query  sentence
l  Deleted  “INSERT  INTO  TABLE  …”  to  evaluate  read-‐‑‒only  performance
v  Combines  a  few  storage  format  with  a  few  compression  method
l  TextFile,  SequenceFile,  RCFile,  ParquestFile
l  No  compression,  Gzip,  Snappy
v  Comparison  with  job  query  latency
v  Average  job  latency  over  5  measurements
Benchmark
12
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v  Uservisits  table
l  100  million  rows
l  16,895  MB  as  TextFile
l  Table  Definitions
•  sourceIP   string
•  destURL   string
•  visitDate   string
•  adRevenue   double
•  userAgent   string
•  countryCode   string
•  languageCode   string
•  searchWord   string
•  duration   int
Modified  Datasets
13
v  Rankings  table
l  12  million  rows
l  744  MB  as  TextFile
l  Table  Definitions
•  pageURL string
•  pageRank int
•  avgDuration int
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
SELECT
  sourceIP,
  sum(adRevenue)  as  totalRevenue,
  avg(pageRank)  
FROM
  rankings_̲t  R
JOIN  (
  SELECT
    sourceIP,
    destURL,
    adRevenue
  FROM
    uservisits_̲t  UV
  WHERE
    (datediff(UV.visitDate,  '1999-‐‑‒01-‐‑‒01')>=0
    AND
    datediff(UV.visitDate,  '2000-‐‑‒01-‐‑‒01')<=0)
  )  NUV
ON
  (R.pageURL  =  NUV.destURL)
group  by  sourceIP
order  by  totalRevenue  DESC
limit  1;
Modified  Query
14
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
Benchmark  Result  (Hive)
15
0 50 100 150 200 250
No  Comp.
Gzip
Snappy
Gzip
Snappy
TextFileSequenceFileRCFile
235.843
227.883
213.616
234.289
197.894
Avg.  Job  Latency  [sec]
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
Benchmark  Result  (Impala)
16
0 50 100 150 200 250
No  Comp.
Gzip
Snappy
Gzip
Snappy
Snappy
Text
File
Sequence
FileRCFile
Parquet
File
36.61
29.736
24.024
26.083
19.586
16.2
Avg.  Job  Latency  [sec]
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v HiveとImpalaは使い分けが重要
l 耐障害性を備えたHiveはバッチ処理理
l Impalaはアドホックなクエリ
v Impalaは可能な限りメモリを使う設計
v mem_̲limitオプションを使う
l PartitionテーブルをParquetに変換する場合、mem_̲limit
は効かないバグがある(IMPALA-‐‑‒257  ⇒  1.1でFix)
v 2つのJOINの使い分け
l 基本的には”partitioned  join”を使うべき
l ”A  JOIN  B”の場合に、BのサイズがAのサイズより極めて
⼩小さい時は”broadcast  join”の⽅方が⾼高速な可能性あり
Impalaを上⼿手く活⽤用するためのTIPS
17
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v Cloudera  Manager  4.6.0  +  CDH4.3.0
現在のHadoopクラスタの構成(全20台)
18
Cloudera  Manager
Hue
プライマリ セカンダリ
マスターサーバ群
スレーブサーバ群(10台+4台)管理サーバ
・・・・・・・
Zookeeper
JournalNode
NameNode
Impalad
TaskTracker
DataNode
HDFS HA
Zookeeper
HiveServer
JobTracker
JournalNode
Zookeeper
HMaster
Zookeeper
StateStored
Hive  Metastore
・・・・・
HRegionServer
DataNode
HRegionServer
DataNode
Impalad
TaskTracker
DataNode
Zookeeper
JournalNode
NameNode
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v HiveとImpalaに対してGUIから実⾏行行可能
Hueを利利⽤用したクエリ実⾏行行
19
Hive
Impala
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
v HiveServer2への移⾏行行
l 要望が多かったセキュリティと同時実⾏行行をサポート
l HiveServer1との後⽅方互換性がないため、バッチソフト
ウェアの改修が必要
ずっと移⾏行行を検討しているものの、時間の都合で…
v Hive  Storage  Formatの変更更
l RCFile  +  Snappyを利利⽤用していたが変換にあまりにも時間
がかかっていたため、TextFile  +  Gzipに変更更
l ImpalaはTextFile  +  Gzipをサポートしてない
サポート時期も未定…LZOへの移⾏行行も視野に…
現状の課題
20
Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
21
ご静聴ありがとうございました。

HiveとImpalaのおいしいとこ取り

  • 1.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / 1 1 HiveとImpalaのおいしいとこ取り 『プログラミング Hive』『Hadoop 第3版』 刊行記念 Hadoopセミナー 2013年年7⽉月24⽇日 株式会社セラン R&D戦略略室  須⽥田幸憲
  • 2.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / 祝!刊⾏行行 2
  • 3.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v 須⽥田幸憲(@sudabon) v 株式会社セラン  R&D戦略略室  室⻑⾧長 v 経歴 l 1997〜~2004  NEC  中央研究所  /  ネットワークの研究 l 2005〜~2006  BIGLOBE  /  BtoBサービスの開発 l 2012/8〜~          現職 v Hadoop歴:約1年年 v 好きなHadoopエコシステム:Hive ⾃自⼰己紹介 3
  • 4.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v  MOBYLOG(モビログ) l  Webアクセス解析・広告効果測定サービス l  2005年年12⽉月にサービス開始 l  PC、スマホ、ケータイ、スマホアプリの計測が可能 l  ケータイでの解析が強み(MOBYLOG  ENGINE) •  旧Omniture社(現Adobe社)のSiteCatalyst、及びWebTrends社の WebTrends  AnalyticsにモジュールとしてOEM提供 v  Xdata  collect(クロスデータ・コレクト) l  クラウド型のログストレージサービス l  2013年年5⽉月にサービス開始 l  Webサーバで取得できる情報に加えて、セッション情報やユーザイベ ントも保存でき、CSVとしてダウンロード可能 l  ⽉月間50万件までは無料料で利利⽤用可能 セランの事業紹介 4
  • 5.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v MOBYLOGでは分析が難しいバッチ処理理 l ⻑⾧長期間を対象に個別のユーザイベントを抽出する場合 v 顧客単位で個別に分析コンサルティング l 物販サイト(EC) l ディジタルコンテンツ販売 l コンテンツのポータルサイト Hadoopの活⽤用⽅方法 5
  • 6.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v 前職の動画配信ベンチャー企業にて、動画の閲覧ロ グの集計でHadoopを利利⽤用 v システム環境 l Amazon  EMR •  Aliveクラスタではなく、Transientクラスタ l Hadoop  Streaming •  S3に保存したログを、EC2上で動作するPHPからコントロール Hadoopエコシステムとの関わり(1) 6
  • 7.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v AWSのユーザ会の懇親会で、某社エンジニアのRさん に、オンプレでHadoopの構築について詳細にアドバ イスいただきました! Hadoopエコシステムとの関わり(2) 7 ・オンプレだったら、ClouderaのHadoopディスト リビューションのCDHがあるよ ・Cloudera Managerのフリー版があって、GUI操 作で複数台のインストールも簡単にできるよ ・Hiveを使えば、Java以外の言語でもSQLライク なクエリ実行で、MapReduce処理できるよ
  • 8.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v バッチ開発時にアドホックにクエリを実⾏行行 l ログ内容のチェックをするためにHiveクエリを実⾏行行 l バッチのクエリのデバッグ時にHiveクエリを実⾏行行 v Hive/MapReduceの処理理完了了を待つケースが頻繁 にあり、時間短縮する⽅方法を模索索していた Cloudera  Impalaがリリース! Hiveより7〜~45倍の⾼高速化 即、導⼊入しました Hadoopエコシステムとの関わり(3) 8
  • 9.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / Impalaのリリースと性能評価 9 2012/10/24 バージョン0.1 beta 2012/11/14 バージョン0.2 beta 2012/12/05 バージョン0.3 beta 2013/01/19 バージョン0.4 beta 2013/02/05 バージョン0.5 beta 2013/02/27 バージョン0.6 beta 2013/04/15 バージョン0.7 beta 2013/05/01 バージョン1.0 2013/06/18 バージョン1.0.1 2012/11/02 5台のクラスタで評価 > slideshareで資料公開 2012/12/07 14台のクラスタで評価 > @ITに寄稿 > slideshareで資料公開 2013/03/06 14台のクラスタで評価 > slideshareで資料公開 2013/05/01 14台のクラスタで評価 > slideshareで資料公開 HiBenchを用いた評価 RCFileの評価 mem_limitオプション、Parquetの評価
  • 10.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / Our  System  Environment 10 v  Install  using  Cloudera  Manager  Free  Edition  4.5.2 Master Slave 11  Servers All  servers  are  connected  with  1Gbps  Ethernet  through  an  L2  switch Active NameNode DataNode TaskTracker Impalad Stand-‐‑‒by NameNode JobTracker statestored 3  Servers DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad DataNode TaskTracker Impalad
  • 11.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v CPU l Intel  Core  2  Duo  2.13  GHz  with  Hyper  Threading v Memory l 4GB v Disk l 7,200  rpm  SATA  mechanical  Hard  Disk  Drive  *  1 v OS l Cent  OS  6.2 Our  Server  Specification 11
  • 12.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v  Use  CDH4.2.1  +  Impala  1.0 v  Use  hivebench  in  open-‐‑‒sourced  benchmark  tool  “HiBench” l  https://github.com/hibench v  Modified  datasets  to  1/10  scale l  Default  configuration  generates  table  with  1  billion  rows v  Modified  query  sentence l  Deleted  “INSERT  INTO  TABLE  …”  to  evaluate  read-‐‑‒only  performance v  Combines  a  few  storage  format  with  a  few  compression  method l  TextFile,  SequenceFile,  RCFile,  ParquestFile l  No  compression,  Gzip,  Snappy v  Comparison  with  job  query  latency v  Average  job  latency  over  5  measurements Benchmark 12
  • 13.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v  Uservisits  table l  100  million  rows l  16,895  MB  as  TextFile l  Table  Definitions •  sourceIP  string •  destURL  string •  visitDate  string •  adRevenue  double •  userAgent  string •  countryCode  string •  languageCode  string •  searchWord  string •  duration  int Modified  Datasets 13 v  Rankings  table l  12  million  rows l  744  MB  as  TextFile l  Table  Definitions •  pageURL string •  pageRank int •  avgDuration int
  • 14.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / SELECT   sourceIP,   sum(adRevenue)  as  totalRevenue,   avg(pageRank)   FROM   rankings_̲t  R JOIN  (   SELECT     sourceIP,     destURL,     adRevenue   FROM     uservisits_̲t  UV   WHERE     (datediff(UV.visitDate,  '1999-‐‑‒01-‐‑‒01')>=0     AND     datediff(UV.visitDate,  '2000-‐‑‒01-‐‑‒01')<=0)   )  NUV ON   (R.pageURL  =  NUV.destURL) group  by  sourceIP order  by  totalRevenue  DESC limit  1; Modified  Query 14
  • 15.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / Benchmark  Result  (Hive) 15 0 50 100 150 200 250 No  Comp. Gzip Snappy Gzip Snappy TextFileSequenceFileRCFile 235.843 227.883 213.616 234.289 197.894 Avg.  Job  Latency  [sec]
  • 16.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / Benchmark  Result  (Impala) 16 0 50 100 150 200 250 No  Comp. Gzip Snappy Gzip Snappy Snappy Text File Sequence FileRCFile Parquet File 36.61 29.736 24.024 26.083 19.586 16.2 Avg.  Job  Latency  [sec]
  • 17.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v HiveとImpalaは使い分けが重要 l 耐障害性を備えたHiveはバッチ処理理 l Impalaはアドホックなクエリ v Impalaは可能な限りメモリを使う設計 v mem_̲limitオプションを使う l PartitionテーブルをParquetに変換する場合、mem_̲limit は効かないバグがある(IMPALA-‐‑‒257  ⇒  1.1でFix) v 2つのJOINの使い分け l 基本的には”partitioned  join”を使うべき l ”A  JOIN  B”の場合に、BのサイズがAのサイズより極めて ⼩小さい時は”broadcast  join”の⽅方が⾼高速な可能性あり Impalaを上⼿手く活⽤用するためのTIPS 17
  • 18.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v Cloudera  Manager  4.6.0  +  CDH4.3.0 現在のHadoopクラスタの構成(全20台) 18 Cloudera  Manager Hue プライマリ セカンダリ マスターサーバ群 スレーブサーバ群(10台+4台)管理サーバ ・・・・・・・ Zookeeper JournalNode NameNode Impalad TaskTracker DataNode HDFS HA Zookeeper HiveServer JobTracker JournalNode Zookeeper HMaster Zookeeper StateStored Hive  Metastore ・・・・・ HRegionServer DataNode HRegionServer DataNode Impalad TaskTracker DataNode Zookeeper JournalNode NameNode
  • 19.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v HiveとImpalaに対してGUIから実⾏行行可能 Hueを利利⽤用したクエリ実⾏行行 19 Hive Impala
  • 20.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / v HiveServer2への移⾏行行 l 要望が多かったセキュリティと同時実⾏行行をサポート l HiveServer1との後⽅方互換性がないため、バッチソフト ウェアの改修が必要 ずっと移⾏行行を検討しているものの、時間の都合で… v Hive  Storage  Formatの変更更 l RCFile  +  Snappyを利利⽤用していたが変換にあまりにも時間 がかかっていたため、TextFile  +  Gzipに変更更 l ImpalaはTextFile  +  Gzipをサポートしてない サポート時期も未定…LZOへの移⾏行行も視野に… 現状の課題 20
  • 21.
    Copyright © CELLANTCorp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p / 21 ご静聴ありがとうございました。