---
title: 1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
tags: 
author: [Yahoo!デベロッパーネットワーク](https://www.docswell.com/user/ydnjp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/G755Y2LQ74.jpg?width=480
description: http://www.zusaar.com/event/17397003
published: February 15, 16
canonical: https://www.docswell.com/s/ydnjp/Z2GXGZ-2016-02-15-134627
---
# Page. 1

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

1000台規模のHadoopクラスタを
Hive/Tezアプリケーションにあわせて
パフォーマンスチューニングした話
Rejected  HCJ  2016
ヤフー株式会社
杉⼭山 朋広/畑間 啓哉/藤本 謙志/鄭 輝/深澤 開/⽇日⽐比野 哲也/古⼭山 慎悟
2016年年2⽉月13⽇日
http://www.yahoo.co.jp /


# Page. 2

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

このセッションについて
ヤフーの広告⽤用Hadoopクラスタ(773台構成)で発⽣生した性能
上のさまざまな問題と、それらを解決するまでの試⾏行行錯誤の
過程、効果があったチューニングパラメータをご紹介します
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
2


# Page. 3

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

広告レポートについて
要求は１時間あたり 100,000   Query
テーブル（最⼤大）
•
•
•
30  億⾏行行 /  1⽇日
7,000  億⾏行行 /  13  ヶ⽉月
7  TB  /  13  ヶ⽉月
Query
•
•
平均処理理時間 30  秒前後
必ず⼩小さなテーブルとのJOINが発⽣生する
その他
•
Daily,Weekly登録されたジョブが、データ更更新後⼀一気に流流れる
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
3


# Page. 4

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

アジェンダ
2016/01/20(⽔水)
2016/01/21(⽊木)
2016/01/22(⾦金金)
2016/01/25(⽉月)
2016/01/26(⽕火)  
2016/01/27(⽔水)
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
4


# Page. 5

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木)
2016/01/22(⾦金金)
2016/01/25(⽉月)
2016/01/26(⽕火)  
2016/01/27(⽔水)
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
5


# Page. 6

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

2016/01/20(⽔水) 問題の発覚
リソースは⼗十分・ソフトウェアも最新！
Slaveノード数
クラスタメモリ
Hiveserverノード数
ソフトウェアバージョン
Hadoop
Hive
Tez
725 nodes
70 TB
3  nodes
HDP2.3.0
2.7.1
1.2.1
0.7.0
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
6


# Page. 7

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

2016/01/20(⽔水) 問題の発覚
スループットを稼ぐための新機能も⼊入れた！
Hiveの実⾏行行エンジンをTezへ
client
• hive.execute.engine =  tez
client
Tezセッションの再利利⽤用
• tez.session.am.dag.submit.timeout.secs = 120
• Hiveserver2のconnectionを維持すること
Tezコンテナの再利利⽤用
Tez session
• tez.am.container.reuse.enabled =  true
client
HS2
AM
client
client
HS2
AM
AM
client
HS2
AM
AM
AM
Tez container
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
7


# Page. 8

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

01/20(⽔水) 問題の発覚
独⾃自のベンチマークツールを作成
ベンチマークツール
•
•
•
•
今回のテストのために独⾃自に作成
指定した数のスレッドが起動して、並列列にSQLを実⾏行行
Benchmark
SQLのサンプルをあらかじめ保存
Sample   directory
process
SQL
Javaで作成
thread
SQL
SQL
SQL
SQL
SQL
thread
thread
thread
SQL
SQL
SQL
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
HS2d
thread
thread
8


# Page. 9

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

01/20(⽔水) 問題の発覚
いざテスト！しかし性能出ず・・・
１時間あたりSQL実⾏行行数
•
•
7,000 Query/hour
要求の１０分の１
主な問題
•
•
•
クエリの並列列度度を引き上げても途中で頭打ち
Hadoopクラスタはスカスカ
Hiveserver2もスカスカ
ヤバイ。。。
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
9


# Page. 10

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

アジェンダ
設計
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金)
2016/01/25(⽉月)
2016/01/26(⽕火)  
2016/01/27(⽔水)
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
10


# Page. 11

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

2016/01/21(⽊木) スタート！
対応チーム結成
ビジネスサイドへテスト結果を報告
•
対応期限が１⽉月いっぱいであることを告げられる
以下の３チームから⼈人選
•
•
•
広告アプリケーションチーム
Hadoopインフラチーム
Hive開発チーム
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
11


# Page. 12

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック①
2016/01/25(⽉月)
2016/01/26(⽕火)  
2016/01/27(⽔水)
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
12


# Page. 13

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

2016/01/22(⾦金金) ボトルネック①（１／３）
並列列度度に関わる設定を⾒見見直し
条件
•
•
•
１クエリあたりの平均コンテナ数：10
クラスタメモリ：7,300  GB
コンテナサイズはyarn.scheduler.minimum-‐‑‒allocation-‐‑‒mbの整数倍
項⽬目
変更更前
変更更後
yarn.scheduler.minimum-‐‑‒allocation-‐‑‒mb
1.7 GB
1.7  GB
hive.tez.container.size
2  GB
1.7  GB
最⼤大同時実⾏行行コンテナ数
約 21,000
約 43,000
約 2,100
約 4,300
最⼤大同時実⾏行行App数（＝SQL数）
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
13


# Page. 14

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

2016/01/22(⾦金金) ボトルネック①（２／３）
Hiveserver2のボトルネックを発⾒見見
HS2の接続数に対してAMが少ない
• 通常、HS2の１接続につき、1つのAMが起動
• 接続数1,000に対して、500くらいしかAMが起動しない
hive.server2.thrift.max.worker.threads
•
•
•
•
Hiveserver2のリクエスト受付側のスレッド数
いじっても変化なし
クライアントからのリクエストは受け付けている
受け付けたリクエストをResourceManagerに渡せてないと判断
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
14


# Page. 15

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

2016/01/22(⾦金金) ボトルネック①（３／３）
Metastoreデータベースを直接参照
Hiveserver2の仕事
•
•
Metastoreの情報取得
クエリのコンパイルと結果セットの集約
hive.metastore.uris
•
•
HDPでは空⽂文字列列指定(DB直接接続)を推奨
MetastoreAPIを使うようにカスタマイズしていたのが裏裏⽬目に
Hiveserver2の接続数が上昇
•
20,000  Query/hour に到達
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
15


# Page. 16

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

ここまでの成果
SQL/Hour
120,000  
100,000  
80,000  
60,000  
40,000  
20,000  
0  
1/22/2016
1/23/2016
1/24/2016
1/25/2016
実測値(最⼤大)
1/26/2016
1/27/2016
1/28/2016
1/29/2016
⽬目標
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
16


# Page. 17

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック① MetastoreServer
2016/01/25(⽉月) ボトルネック②
2016/01/26(⽕火)  
2016/01/27(⽔水)
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
17


# Page. 18

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

2016/01/25(⽉月)  ボトルネック②（１／３）
ResourceManagerのボトルネックを発⾒見見
Hiveserver2→Metastoreのボトルネックが解消
• Hiverserver2のリソースが使われ始める
• しかし、リクエスト数に対して、まだAMが少ない
⼤大量量のPendingAppsが発⽣生
• HS2の接続数が増えていくと、PendingステータスのAppが多発
• RMが効率率率よくAMを起動できてないかもしれない
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
18


# Page. 19

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

2016/01/25(⽉月)  ボトルネック②（２／３）
TimelineServerの利利⽤用を停⽌止
YARN  TimelineServer
• YARNアプリケーションのログやstatisticsを保管
• ローカルのleveldbを使うため、ボトルネックになりやすい
従来のHistoryServerの使⽤用も可能
• tez.history.logging.service.class =
org.apache.tez.dag.history.logging.impl.SimpleHistoryLoggingService
• HDFSの負荷があがることに注意
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
19


# Page. 20

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

2016/01/25(⽉月)  ボトルネック②（３／３）
ApplicationMasterの起動効率率率の向上
⼤大量量のAM起動中にPendingが発⽣生
• PendingステータスのAMが多いことに気づく
yarn.resourcemanager.amlauncher.thread-‐‑‒count
• RMがAMを起動する時に使うスレッドの数
• 50(デフォルト)→200に引き上げ
結果
• 22,000 Query/hour
• 思ったより効果出ず。。
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
20


# Page. 21

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

ここまでの成果
SQL/Hour
120,000  
100,000  
80,000  
60,000  
40,000  
20,000  
0  
1/22/2016
1/23/2016
1/24/2016
1/25/2016
実測値(最⼤大)
1/26/2016
1/27/2016
1/28/2016
1/29/2016
⽬目標
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
21


# Page. 22

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック① MetastoreServer
2016/01/25(⽉月) ボトルネック② RM
2016/01/26(⽕火)  ボトルネック③
2016/01/27(⽔水)
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
22


# Page. 23

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

2016/01/26(⽕火)  ボトルネック③（１／３）
ResourceManagerのボトルネックが継続
Pendingステータスのコンテナが多発
•
•
⼤大量量のAMに対して、コンテナが少なすぎることに気付く
コンテナの起動に関わる設定を模索索
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
23


# Page. 24

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

2016/01/26(⽕火)  ボトルネック③（２／３）
コンテナの起動速度度を最適化
HeartBeat間隔を調整し、RMへの要求伝達を効率率率化
プロパティ
default
変更更後
tez.am.am-‐‑‒rm.heartbeat.interval-‐‑‒ms.max
250
1500
yarn.resourcemanager.
nodemanagers.heartbeat-‐‑‒interval-‐‑‒ms
2000
1000
コンテナ起動が効率率率よくなり、再びHS2がボトルネックに
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
24


# Page. 25

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

2016/01/26(⽕火)  ボトルネック③（３／３）
再びHiveserver2のボトルネックを発⾒見見
Hiveserver2の特徴
•
クエリのコンパイルや結果セットの集約を⾏行行うので
並列列度度が⾼高いとボトルネックになりやすい
Hiveserver2を3ノードから10ノードへ増設
•
•
46,000 Query/hour に到達
少し効果が出てきた
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
25


# Page. 26

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

ここまでの成果
SQL/Hour
120,000  
100,000  
80,000  
60,000  
40,000  
20,000  
0  
1/22/2016
1/23/2016
1/24/2016
1/25/2016
実測値(最⼤大)
1/26/2016
1/27/2016
1/28/2016
1/29/2016
⽬目標
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
26


# Page. 27

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック① MetastoreServer
2016/01/25(⽉月) ボトルネック② RM
2016/01/26(⽕火)  ボトルネック③ AM
2016/01/27(⽔水) ボトルネック④
2016/01/28(⽊木)  
2016/01/29(⾦金金)
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
27


# Page. 28

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

2016/01/27(⽔水) ボトルネック④（１／２）
再びResourceManagerがボトルネックへ
並列列数を引き上げ
•
•
現段階で考えられるボトルネックが解消
並列列数を256から段階的に引き上げ
1,000並列列前後で性能が頭打ち
•
ResourceManagerが⾼高負荷になっていることを発⾒見見
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
28


# Page. 29

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

2016/01/27(⽔水) ボトルネック④（２／２）
ResourceManagerのヒープサイズ引き上げ
⼤大量量のAM実⾏行行によりRMが⾼高負荷に
•
•
RMのメモリ使⽤用率率率が上昇
テスト中にフルGC→Failover
RMのヒープを調整しフルGCを回避
•
•
•
HDPはAmbariから調整
86,000 Query/hourに到達
あとひと息！
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
29


# Page. 30

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

ここまでの成果
SQL/Hour
120,000  
100,000  
80,000  
60,000  
40,000  
20,000  
0  
1/22/2016
1/23/2016
1/24/2016
1/25/2016
実測値(最⼤大)
1/26/2016
1/27/2016
1/28/2016
1/29/2016
⽬目標
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
30


# Page. 31

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック①
2016/01/25(⽉月) ボトルネック②
2016/01/26(⽕火)  ボトルネック③
2016/01/27(⽔水) ボトルネック④
2016/01/28(⽊木)  ボトルネック⑤
2016/01/29(⾦金金)
MetastoreServer
RM
AM
コンテナ
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
31


# Page. 32

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

2016/01/28(⽊木)  ボトルネック③（１／３）
HDFSのボトルネックを発⾒見見
著しくパフォーマンスが悪いSQLを発⾒見見
•
•
同じSQLを再実⾏行行すると速い
構⽂文やデータ構造の問題でない
⼤大量量のAppから同じDatanodeへアクセス集中
•
•
DatanodeのConnection   Timeout
その他不不明なHDFSアクセスエラー
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
32


# Page. 33

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

2016/01/28(⽊木) ボトルネック⑤
Datanodeのビジーを解消
HDFSのReplicationFactorを引き上げることでbusyを回避
•
•
•
ReplicationFactor：３(Default) → １０
hadoop fs –setrep 10 /user/hive/warehouse/...
hive&gt; set  dfs.replication=10;
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
33


# Page. 34

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

2016/01/28(⽊木) ボトルネック⑤
Namenodeのチューニンング
⼤大量量のAM終了了時にNamenodeがダウン
•
AM終了了時のJobHistoryの⼤大量量書き込みが原因
Namenodeスレッド数の調整
•
dfs.namenode.handler.count -‐‑‒&gt;  40
HDFSユーザのnofile引き上げ
•
•
•
too many open filesエラーが発⽣生
nofileを1,280,000へ引き上げ
Ambariから調整
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
34


# Page. 35

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

ここまでの成果
SQL/Hour
120,000  
100,000  
80,000  
60,000  
40,000  
20,000  
0  
1/22/2016
1/23/2016
1/24/2016
1/25/2016
実測値(最⼤大)
1/26/2016
1/27/2016
1/28/2016
1/29/2016
⽬目標
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
35


# Page. 36

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック①
2016/01/25(⽉月) ボトルネック②
2016/01/26(⽕火)  ボトルネック③
2016/01/27(⽔水) ボトルネック④
2016/01/28(⽊木)  ボトルネック⑤
2016/01/29(⾦金金)
MetastoreServer
RM
AM
コンテナ
HDFS
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
36


# Page. 37

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

2016/01/29(⾦金金)
スイートスポットの探索索
768並列列以降降は、DNのネックで頭打ち
並列列数 60,000SQLの処理理時間 １時間あたり換算
512
2,508  sec
86,106   qph
768
2,289  sec
94,354   qph
1,024
2,514  sec
85,899   qph
2,560
3,106  sec
69,541   qph
サンプル数を増やして実測値でも100,000qphをクリア！
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
37


# Page. 38

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

⽬目標達成！！！
SQL/Hour
120,000  
100,000  
80,000  
60,000  
40,000  
20,000  
0  
1/22/2016
1/23/2016
1/24/2016
1/25/2016
実測値(最⼤大)
1/26/2016
1/27/2016
1/28/2016
1/29/2016
⽬目標
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
38


# Page. 39

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

アジェンダ
2016/01/20(⽔水) 問題の発覚
2016/01/21(⽊木) スタート！
2016/01/22(⾦金金) ボトルネック①
2016/01/25(⽉月) ボトルネック②
2016/01/26(⽕火)  ボトルネック③
2016/01/27(⽔水) ボトルネック④
2016/01/28(⽊木)  ボトルネック⑤
2016/01/29(⾦金金) ⽬目標達成！
MetastoreServer
RM
AM
コンテナ
HDFS
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
39


# Page. 40

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

おまけ
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
40


# Page. 41

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

その他効果があったと思われるパラメータ（１／５）
reuseまわり
Reuse  on/off
•
•
tez.am.container.reuse.rack-‐‑‒fallback.enabled=true
=&gt;  同じrackのcontainerをreuseする設定
tez.am.container.reuse.non-‐‑‒local-‐‑‒fallback.enabled=true  
=&gt;  rack外のcontainerをreuseする設定
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
41


# Page. 42

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

その他効果があったと思われるパラメータ（ ２／５ ）
reuseまわり
Containerの保持期間を調整
•
•
•
tez.am.session.min.held-‐‑‒containers=10
tez.am.container.idle.release-‐‑‒timeout-‐‑‒max.millis=5000
tez.am.container.idle.release-‐‑‒timeout-‐‑‒min.millis=2000
Containerのreuseが効果を維持するため
•
tez.session.am.dag.submit.timeout.secs=120
=&gt;  次のクエリが来る間隔以上で設定しておく必要がある
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
42


# Page. 43

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

その他効果があったと思われるパラメータ（ ３／５ ）
Hiveserver2まわり
clientの接続数が多い場合は、以下を引き上げる
•
•
hive.server2.thrift.min.worker.threads=5   -‐‑‒&gt;  100  
hive.exec.parallel.thread.number=8   -‐‑‒&gt;  32
Join最適化
•
•
hive.auto.convert.join.noconditionaltask.size=209715200
hive.auto.convert.join=true
=&gt;  メモリ上にのるデータならMapフェーズでJoinしStageがひとつ減る
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
43


# Page. 44

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

その他効果があったと思われるパラメータ（ ４／５ ）
etc
node  localityの変更更
•
yarn.scheduler.capacity.node-‐‑‒locality-‐‑‒delay=-‐‑‒1   -‐‑‒&gt;  26
RMとATSの通信削減
•
yarn.resourcemanager.system-‐‑‒metrics-‐‑‒publisher.enabled=false
=&gt;  もし使ってなければ、falseにして無駄な通信を無くしたほうがいい
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
44


# Page. 45

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

その他効果があったと思われるパラメータ（５／５）
etc
Pre-‐‑‒warm
•
•
•
•
hive.prewarm.enabled=true
hive.prewarm.numcontainers=25
hive.server2.tez.sessions.per.default.queue=96
hive.server2.tez.default.queues=queue_̲name
=&gt;  今回は、DoASを有効にしているので使いませんでした。
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
45


# Page. 46

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

最後に
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
46


# Page. 47

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

反省省点
⼤大規模環境からくる慢⼼心
サーバがたくさんあるからと安⼼心していた
•
•
700ノードもあるから⼤大丈夫だろうと⾼高を括っていた
スレーブノードが増えれば、HDFSやYARNの基本的な設定も⾒見見直すべき
チーム間の連携
•
•
クラスタ本体とHiveの設定の担当が別チームで設計の整合性が⽋欠如
⼤大きなクラスタを⼤大きな組織で運営する問題
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
47


# Page. 48

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

収穫
⼤大規模環境の運営で培った⼒力力が活きた
YARNやHDFSのノウハウが通⽤用する
•
•
HiveやTezなどベーシックなエコシステムを利利⽤用
YARNやHDFSの経験を積んだ⼈人材が育っていた
短期間に各領領域の専⾨門家が集結
•
•
設計時は複数チームの意思疎通がまずかったが、
それぞれの領領域の専⾨門家が集まることで短期間に問題を解決できた
この中には当社のHiveコントリビュータもいて、⼒力力強い助っ⼈人になった
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
48


# Page. 49

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

EOP
Copyright  (C)  2016  Yahoo  Japan  Corporation.  All  Rights  Reserved.  無断引⽤用・転載禁⽌止
49


