---
title: Hive on Tezのベストプラクティス
tags: 
author: [Yahoo!デベロッパーネットワーク](https://convert.docswell.com/user/ydnjp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/V7N553L6E8.jpg?width=480
description: Hive on Tezのベストプラクティス by Yahoo!デベロッパーネットワーク
published: September 15, 17
canonical: https://convert.docswell.com/s/ydnjp/519RVK-2017-09-15-135831
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/V7N553L6E8.jpg)

Hive on Tezのベストプラクティス
2017年9月15日
大竹 隼人
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 2

![Page Image](https://bcdn.docswell.com/page/YJ9YY94R73.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
2
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 3

![Page Image](https://bcdn.docswell.com/page/GJ8669QGED.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
3
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJL99WXX7R.jpg)

自己紹介
大竹 隼人
2013年新卒入社
入社以来、広告ログ集計システムの開発、運用を担当
- プロジェクト案件
- システム刷新
- PoC
- CI/CDの導入
4
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 5

![Page Image](https://bcdn.docswell.com/page/47MZZ9L3JW.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
5
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 6

![Page Image](https://bcdn.docswell.com/page/P7R66GKRE9.jpg)

Hive on Tezとは
Hiveとは
HadoopエコシステムにおけるSQLエンジンの一つ
・SQLに似たHive Query Languageで大量のデータに対して高
速な処理が行える
・DWH向けのソフトウェア
6
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 7

![Page Image](https://bcdn.docswell.com/page/PJXMMXLYEX.jpg)

Hive on Tezとは
Tezとは
Yarn上で動くデータ処理アプリのための処理エンジン
・Yarnを使ってリソースを管理
・データ処理アプリ向け（Hive,Pigなど）
・MapReduceの教訓を活かしてパフォーマンスの改善
7
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 8

![Page Image](https://bcdn.docswell.com/page/3JKGGWL47D.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
8
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LE3NN13DE5.jpg)

適用したシステム
統計情報を集計するログ集計システム
Hadoop
MapReduce
Data Pipeline
Hdfs
Hdfs
Hiveテーブル
配信
速報用集計
システム
9
Hive on Tez
Hiveテーブル
Hdfs
Co p yrig ht © 2 0 1 7
Sqoop
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Oracleテーブル
(OLTP)
広告主様


# Page. 10

![Page Image](https://bcdn.docswell.com/page/8EDWWX427G.jpg)

適用したシステム
速報用の統計情報に求められてるもの
速報用の統計情報
30分毎に最新の統計情報を提供
→ 安定的に性能をだし続ける必要がある
10
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 11

![Page Image](https://bcdn.docswell.com/page/V7P99PMLJ8.jpg)

適用したシステム
統計情報を集計するログ集計システム
Hadoop
MapReduce
Data Pipeline
Hdfs
Hdfs
Hiveテーブル
配信
速報用集計
システム
11
Hive on Tez
Hiveテーブル
Hdfs
Co p yrig ht © 2 0 1 7
Sqoop
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Oracleテーブル
(OLTP)
広告主様


# Page. 12

![Page Image](https://bcdn.docswell.com/page/2JVMM296JQ.jpg)

適用したシステム
リリースまでの課題
・性能がでない
・安定的に動かない
・再実行を考慮した作りにできない
12
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 13

![Page Image](https://bcdn.docswell.com/page/5EGGGRZ2EL.jpg)

適用したシステム
リリースまでの課題
・性能がでない
・安定的に動かない
・再実行を考慮した作りにできない
13
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 14

![Page Image](https://bcdn.docswell.com/page/4JQXXVL9EP.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
14
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 15

![Page Image](https://bcdn.docswell.com/page/K7466M5RE1.jpg)

性能改善のために
課題
ジョブのターンアラウンドタイムについて
・目標の性能が満たせてない
・性能が安定していない
15
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 16

![Page Image](https://bcdn.docswell.com/page/LJ1VV8WVEG.jpg)

性能改善のために
原因確認
ジョブのボトルネックを確認
|--------------- ジョブ実行時間 --------------&gt;|
NEW
16
NEW_SAVING
SUBMITTED
Co p yrig ht © 2 0 1 7
ACCEPTED
RUNNING
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
FINAL_SAVING
FINISHING


# Page. 17

![Page Image](https://bcdn.docswell.com/page/GJWLLZ63E2.jpg)

性能改善のために
原因確認
Yarnログ
実行時間
実行時間
実行時間
実行時間
実行時間
実行時間
実行時間
17
:
:
:
:
:
:
:
application_× State change from NEW to NEW_SAVING
application_× State change from NEW_SAVING to SUBMITTED
application_× State change from SUBMITTED to ACCEPTED
application_× State change from ACCEPTED to RUNNING
application_× State change from RUNNING to FINAL_SAVING
application_× State change from FINAL_SAVING to FINISHING
application_× State change from FINISHING to FINISHED
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4EZMM1YGJ3.jpg)

性能改善のために
原因確認
クエリーのボトルネックを確認
・EXPLAIN
・hive.tez.exec.print.summary
18
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Y76NNLDQ7V.jpg)

性能改善のために
原因確認
EXPLAIN
19
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 20

![Page Image](https://bcdn.docswell.com/page/G755513274.jpg)

性能改善のために
原因確認
hive.tez.exec.print.summary=true
20
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 21

![Page Image](https://bcdn.docswell.com/page/9J2NN1Z1ER.jpg)

性能改善のために
原因と対策
21
原因
対策
NameNodeの負荷でジョブのSUBMITが遅れている
負荷をかけているクエリーのログ出力を停止
リソースを確保できていない時がある
常に安定的な性能がでるようにリソースを確保
Inputデータ量が多すぎる
データの再設計
Reduceタスクが遅い
Reducer数の調整
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 22

![Page Image](https://bcdn.docswell.com/page/DEYPPZR4EM.jpg)

性能改善のために
目標実行時間を満たす並列数を求める
必要なcontainer数 = 直列時のクエリー実行時間 / 目標実行時間
実行時間
直列時のクエリー実行時間
(CPU_TIME_MILLISの合計時間)
目標実行時間
22
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 23

![Page Image](https://bcdn.docswell.com/page/VJN553D678.jpg)

性能改善のために
並列数から必要なリソースを求める
確保するパーセンテージ =(必要なcontainer数/ 全体のcontainer数 ) * 100
container数
全体のcontainer数
必要なcontainer数
23
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 24

![Page Image](https://bcdn.docswell.com/page/YE9YY9GRJ3.jpg)

性能改善のために
データの再設計
一度統計用のInputに特化したテーブルを作成するこ
とでInputレコード数を削減
24
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 25

![Page Image](https://bcdn.docswell.com/page/GE8669VG7D.jpg)

性能改善のために
Reducer数の調整
データ量に応じてスケールし、目標実行時間を満たせ
るような並列数にする
・hive.exec.reducers.bytes.per.reducer
25
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LEL99W5XJR.jpg)

性能改善のために
性能をだすために必要なこと
・ボトルネックを明確にする
・リソースの確保
・Reducerの調整
26
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4JMZZ933EW.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
27
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 28

![Page Image](https://bcdn.docswell.com/page/PJR66GQR79.jpg)

安定稼働のために
課題
正常終了するジョブを運用していくと、失敗
するケースが発生してきた
28
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 29

![Page Image](https://bcdn.docswell.com/page/PEXMMX5Y7X.jpg)

安定稼働のために
原因
1.Mapper数が過度に上がりリソースを取得できなかっ
た
2.Mapper数が少なく1Mapperで処理できるデータ量を
超えてしまった
29
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 30

![Page Image](https://bcdn.docswell.com/page/3EKGGW64JD.jpg)

安定稼働のために
原因１
対象とするInputデータに対して1Mapperあたりのデー
タサイズが小さすぎた為、Mapper数が過度に上がり
リソースを取得できなかった
30
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 31

![Page Image](https://bcdn.docswell.com/page/L73NN16D75.jpg)

安定稼働のために
原因１ 正常に終了するケース
取得できるリソース
Map 1
Map 2
Map n
Inputデータ
31
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 32

![Page Image](https://bcdn.docswell.com/page/87DWWXV2JG.jpg)

安定稼働のために
原因１ エラーになるケース
取得できるリソース
Map 1
Map 2
Inputデータ
Map m
32
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 33

![Page Image](https://bcdn.docswell.com/page/VJP99PVLE8.jpg)

安定稼働のために
原因2
対象とするInputデータに対して1Mapperあたりのデー
タサイズが大きすぎた為、 Mapperで集約する際に
OutOfMemoryが発生してしまっていた
33
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 34

![Page Image](https://bcdn.docswell.com/page/2EVMM2Z6EQ.jpg)

安定稼働のために
原因2 正常に終了するケース
Map 1
1Mapで扱えるデータ量
Map 2
Inputデータ
Map n
34
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 35

![Page Image](https://bcdn.docswell.com/page/57GGGR427L.jpg)

安定稼働のために
原因2 エラーになるケース
1Mapで扱えるデータ量
Map 1
Map 2
Inputデータ
35
Map m
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 36

![Page Image](https://bcdn.docswell.com/page/4EQXXVG97P.jpg)

安定稼働のために
対策
運用しながら1Mapperが扱うデータサイズを調整する
36
原因
対策
Mapperが過度にあがる
1Mapperが扱う最小のデータ量を調整
tez.grouping.min-size
1Mapperが扱うデータ量が多い
1Mapperが扱う最大のデータ量を調整
tez.grouping.max-size
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 37

![Page Image](https://bcdn.docswell.com/page/KJ466M8R71.jpg)

安定稼働のために
対策
Map 1
1Mapで扱えるデータ量
Map 2
Inputデータ
Map n
37
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
取得できるリソース


# Page. 38

![Page Image](https://bcdn.docswell.com/page/LE1VV82V7G.jpg)

安定稼働のために
安定的に動かすために必要なこと
・1Mapperが扱うデータ量を設定する
・増加するデータ量に対応する設定を入れる
・実際のデータで運用してチューニングしていく
・チューニングパラメータの変更を容易にしておく
38
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 39

![Page Image](https://bcdn.docswell.com/page/GEWLLZR372.jpg)

アジェンダ
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
39
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


# Page. 40

![Page Image](https://bcdn.docswell.com/page/47ZMM1RGE3.jpg)

最後に
再認識できたこと
デプロイメントサイクルを早くすることの重要性
・早くリリースし本番環境、本番のデータで運用していくこと
が重要
・予測できない事への修正、チューニングパラメータの迅速
な変更が重要
40
Co p yrig ht © 2 0 1 7
Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .


