More Related Content
Similar to HiveとImpalaのおいしいとこ取り (20)
More from Yukinori Suda (7)
HiveとImpalaのおいしいとこ取り
- 1. 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戦略略室 須⽥田幸憲
- 2. Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
祝!刊⾏行行
2
- 3. 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
- 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 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 © 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
- 6. 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
- 7. 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処理できるよ
- 8. 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
- 9. 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の評価
- 10. 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
- 11. 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
- 12. 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
- 13. 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
- 14. 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
- 15. 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]
- 16. 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]
- 17. 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
- 18. 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
- 19. 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
- 20. 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
- 21. Copyright © CELLANT Corp. All Rights Reserved. h t t p : / / w w w . c e l l a n t . j p /
21
ご静聴ありがとうございました。