SlideShare a Scribd company logo
1 of 40
Download to read offline
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
2017年9月15日
大竹 隼人
Hive on Tezのベストプラクティス
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
2
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
3
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
自己紹介
4
大竹 隼人
2013年新卒入社
入社以来、広告ログ集計システムの開発、運用を担当
- プロジェクト案件
- システム刷新
- PoC
- CI/CDの導入
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
5
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Hive on Tezとは
6
Hiveとは
HadoopエコシステムにおけるSQLエンジンの一つ
・SQLに似たHive Query Languageで大量のデータに対して高
速な処理が行える
・DWH向けのソフトウェア
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Hive on Tezとは
7
Tezとは
Yarn上で動くデータ処理アプリのための処理エンジン
・Yarnを使ってリソースを管理
・データ処理アプリ向け(Hive,Pigなど)
・MapReduceの教訓を活かしてパフォーマンスの改善
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
8
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Hadoop
適用したシステム
9
Oracleテーブル
(OLTP)
配信
Data Pipeline
速報用集計
システム
Hiveテーブル
Hdfs
Hdfs
Hiveテーブル
Hdfs
MapReduce
Hive on Tez Sqoop
統計情報を集計するログ集計システム
広告主様
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
適用したシステム
10
速報用の統計情報に求められてるもの
速報用の統計情報
30分毎に最新の統計情報を提供
→ 安定的に性能をだし続ける必要がある
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
Hadoop
適用したシステム
11
Oracleテーブル
(OLTP)
配信
Data Pipeline
速報用集計
システム
Hiveテーブル
Hdfs
Hdfs
Hiveテーブル
Hdfs
MapReduce
Hive on Tez Sqoop
統計情報を集計するログ集計システム
広告主様
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
適用したシステム
12
リリースまでの課題
・性能がでない
・安定的に動かない
・再実行を考慮した作りにできない
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
適用したシステム
13
リリースまでの課題
・性能がでない
・安定的に動かない
・再実行を考慮した作りにできない
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
14
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
15
課題
ジョブのターンアラウンドタイムについて
・目標の性能が満たせてない
・性能が安定していない
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
NEW NEW_SAVING SUBMITTED ACCEPTED RUNNING FINAL_SAVING FINISHING
性能改善のために
16
原因確認
ジョブのボトルネックを確認
|--------------- ジョブ実行時間 ---------------
>|
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
17
原因確認
Yarnログ
実行時間 : 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
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
18
原因確認
クエリーのボトルネックを確認
・EXPLAIN
・hive.tez.exec.print.summary
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
19
原因確認
EXPLAIN
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
20
原因確認
hive.tez.exec.print.summary=true
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
21
原因と対策
原因 対策
NameNodeの負荷でジョブのSUBMITが遅れている 負荷をかけているクエリーのログ出力を停止
リソースを確保できていない時がある 常に安定的な性能がでるようにリソースを確保
Inputデータ量が多すぎる データの再設計
Reduceタスクが遅い Reducer数の調整
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
22
目標実行時間を満たす並列数を求める
直列時のクエリー実行時間
(CPU_TIME_MILLISの合計時間)
目標実行時間
実行時間
必要なcontainer数 = 直列時のクエリー実行時間 / 目標実行時間
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
23
並列数から必要なリソースを求める
確保するパーセンテージ =(必要なcontainer数/ 全体のcontainer数 ) * 100
container数
全体のcontainer数
必要なcontainer数
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
24
データの再設計
一度統計用のInputに特化したテーブルを作成するこ
とでInputレコード数を削減
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
25
Reducer数の調整
データ量に応じてスケールし、目標実行時間を満たせ
るような並列数にする
・hive.exec.reducers.bytes.per.reducer
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
性能改善のために
26
性能をだすために必要なこと
・ボトルネックを明確にする
・リソースの確保
・Reducerの調整
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
27
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
28
課題
正常終了するジョブを運用していくと、失敗
するケースが発生してきた
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
29
原因
1.Mapper数が過度に上がりリソースを取得できなかっ
た
2.Mapper数が少なく1Mapperで処理できるデータ量を
超えてしまった
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
30
原因1
対象とするInputデータに対して1Mapperあたりのデー
タサイズが小さすぎた為、Mapper数が過度に上がり
リソースを取得できなかった
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
31
原因1 正常に終了するケース
Inputデータ
Map 1
Map 2
Map n
取得できるリソース
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
32
原因1 エラーになるケース
Inputデータ
Map 1
Map 2
Map m
取得できるリソース
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
33
原因2
対象とするInputデータに対して1Mapperあたりのデー
タサイズが大きすぎた為、 Mapperで集約する際に
OutOfMemoryが発生してしまっていた
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
34
原因2 正常に終了するケース
Inputデータ
Map 1
Map 2
Map n
1Mapで扱えるデータ量
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
35
原因2 エラーになるケース
Inputデータ
Map 1
Map 2
1Mapで扱えるデータ量
Map m
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
36
対策
運用しながら1Mapperが扱うデータサイズを調整する
原因 対策
Mapperが過度にあがる 1Mapperが扱う最小のデータ量を調整
tez.grouping.min-size
1Mapperが扱うデータ量が多い 1Mapperが扱う最大のデータ量を調整
tez.grouping.max-size
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
37
対策
Inputデータ
Map 1
Map 2
Map n
1Mapで扱えるデータ量
取得できるリソース
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
安定稼働のために
38
安定的に動かすために必要なこと
・1Mapperが扱うデータ量を設定する
・増加するデータ量に対応する設定を入れる
・実際のデータで運用してチューニングしていく
・チューニングパラメータの変更を容易にしておく
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
アジェンダ
39
・自己紹介
・Hive on Tezとは
・適用システムについて
・性能改善のために
・安定稼働のために
・最後に
Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved.
最後に
40
再認識できたこと
デプロイメントサイクルを早くすることの重要性
・早くリリースし本番環境、本番のデータで運用していくこと
が重要
・予測できない事への修正、チューニングパラメータの迅速
な変更が重要

More Related Content

What's hot

What's hot (20)

ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
 
Presto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaPresto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon Athena
 
Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 

Viewers also liked

Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnightYahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo!デベロッパーネットワーク
 
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!デベロッパーネットワーク
 

Viewers also liked (10)

僕とヤフーと時々Teradata #prestodb
僕とヤフーと時々Teradata #prestodb僕とヤフーと時々Teradata #prestodb
僕とヤフーと時々Teradata #prestodb
 
AMPと広告とOpenRTBと #yjmu
AMPと広告とOpenRTBと #yjmuAMPと広告とOpenRTBと #yjmu
AMPと広告とOpenRTBと #yjmu
 
ヤフーオープンローカルプラットフォームの設計思想
ヤフーオープンローカルプラットフォームの設計思想ヤフーオープンローカルプラットフォームの設計思想
ヤフーオープンローカルプラットフォームの設計思想
 
Kafka・Storm・ZooKeeperの認証と認可について #kafkajp
Kafka・Storm・ZooKeeperの認証と認可について #kafkajpKafka・Storm・ZooKeeperの認証と認可について #kafkajp
Kafka・Storm・ZooKeeperの認証と認可について #kafkajp
 
Yahoo! JAPANのCloud Foundry導入状況
Yahoo! JAPANのCloud Foundry導入状況Yahoo! JAPANのCloud Foundry導入状況
Yahoo! JAPANのCloud Foundry導入状況
 
Presto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnightPresto in Yahoo! JAPAN #yjdsnight
Presto in Yahoo! JAPAN #yjdsnight
 
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnightYahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight
 
マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方マルチビッグデータの活用を支える DWHの作り方
マルチビッグデータの活用を支える DWHの作り方
 
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
 
ICML2017 参加報告会 山本康生
ICML2017 参加報告会 山本康生ICML2017 参加報告会 山本康生
ICML2017 参加報告会 山本康生
 

Similar to Hive on Tezのベストプラクティス

Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo!デベロッパーネットワーク
 

Similar to Hive on Tezのベストプラクティス (20)

20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
 
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreadingApache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
 
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
ヤフーにおけるHadoop Operations #tdtech
ヤフーにおけるHadoop Operations #tdtechヤフーにおけるHadoop Operations #tdtech
ヤフーにおけるHadoop Operations #tdtech
 
Report apiを支える技術
Report apiを支える技術Report apiを支える技術
Report apiを支える技術
 
Klocwork 2017.0アップデート
Klocwork 2017.0アップデートKlocwork 2017.0アップデート
Klocwork 2017.0アップデート
 
市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①市場で勝ち続けるための品質とテストの技術①
市場で勝ち続けるための品質とテストの技術①
 
Design pattern in presto source code
Design pattern in presto source codeDesign pattern in presto source code
Design pattern in presto source code
 
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
ヤフーの広告レポートシステムをSpring Cloud Stream化するまで #jjug_ccc #ccc_a4
 
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
 
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 
Storm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreadingStorm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreading
 
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
 
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) Ops
 

More from Yahoo!デベロッパーネットワーク

More from Yahoo!デベロッパーネットワーク (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

Recently uploaded

Recently uploaded (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Hive on Tezのベストプラクティス

  • 1. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 2017年9月15日 大竹 隼人 Hive on Tezのベストプラクティス
  • 2. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 2 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 3. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 3 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 4. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 4 大竹 隼人 2013年新卒入社 入社以来、広告ログ集計システムの開発、運用を担当 - プロジェクト案件 - システム刷新 - PoC - CI/CDの導入
  • 5. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 5 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 6. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Hive on Tezとは 6 Hiveとは HadoopエコシステムにおけるSQLエンジンの一つ ・SQLに似たHive Query Languageで大量のデータに対して高 速な処理が行える ・DWH向けのソフトウェア
  • 7. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Hive on Tezとは 7 Tezとは Yarn上で動くデータ処理アプリのための処理エンジン ・Yarnを使ってリソースを管理 ・データ処理アプリ向け(Hive,Pigなど) ・MapReduceの教訓を活かしてパフォーマンスの改善
  • 8. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 8 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 9. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Hadoop 適用したシステム 9 Oracleテーブル (OLTP) 配信 Data Pipeline 速報用集計 システム Hiveテーブル Hdfs Hdfs Hiveテーブル Hdfs MapReduce Hive on Tez Sqoop 統計情報を集計するログ集計システム 広告主様
  • 10. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 適用したシステム 10 速報用の統計情報に求められてるもの 速報用の統計情報 30分毎に最新の統計情報を提供 → 安定的に性能をだし続ける必要がある
  • 11. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. Hadoop 適用したシステム 11 Oracleテーブル (OLTP) 配信 Data Pipeline 速報用集計 システム Hiveテーブル Hdfs Hdfs Hiveテーブル Hdfs MapReduce Hive on Tez Sqoop 統計情報を集計するログ集計システム 広告主様
  • 12. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 適用したシステム 12 リリースまでの課題 ・性能がでない ・安定的に動かない ・再実行を考慮した作りにできない
  • 13. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 適用したシステム 13 リリースまでの課題 ・性能がでない ・安定的に動かない ・再実行を考慮した作りにできない
  • 14. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 14 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 15. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 15 課題 ジョブのターンアラウンドタイムについて ・目標の性能が満たせてない ・性能が安定していない
  • 16. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. NEW NEW_SAVING SUBMITTED ACCEPTED RUNNING FINAL_SAVING FINISHING 性能改善のために 16 原因確認 ジョブのボトルネックを確認 |--------------- ジョブ実行時間 --------------- >|
  • 17. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 17 原因確認 Yarnログ 実行時間 : 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
  • 18. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 18 原因確認 クエリーのボトルネックを確認 ・EXPLAIN ・hive.tez.exec.print.summary
  • 19. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 19 原因確認 EXPLAIN
  • 20. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 20 原因確認 hive.tez.exec.print.summary=true
  • 21. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 21 原因と対策 原因 対策 NameNodeの負荷でジョブのSUBMITが遅れている 負荷をかけているクエリーのログ出力を停止 リソースを確保できていない時がある 常に安定的な性能がでるようにリソースを確保 Inputデータ量が多すぎる データの再設計 Reduceタスクが遅い Reducer数の調整
  • 22. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 22 目標実行時間を満たす並列数を求める 直列時のクエリー実行時間 (CPU_TIME_MILLISの合計時間) 目標実行時間 実行時間 必要なcontainer数 = 直列時のクエリー実行時間 / 目標実行時間
  • 23. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 23 並列数から必要なリソースを求める 確保するパーセンテージ =(必要なcontainer数/ 全体のcontainer数 ) * 100 container数 全体のcontainer数 必要なcontainer数
  • 24. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 24 データの再設計 一度統計用のInputに特化したテーブルを作成するこ とでInputレコード数を削減
  • 25. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 25 Reducer数の調整 データ量に応じてスケールし、目標実行時間を満たせ るような並列数にする ・hive.exec.reducers.bytes.per.reducer
  • 26. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 性能改善のために 26 性能をだすために必要なこと ・ボトルネックを明確にする ・リソースの確保 ・Reducerの調整
  • 27. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 27 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 28. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 28 課題 正常終了するジョブを運用していくと、失敗 するケースが発生してきた
  • 29. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 29 原因 1.Mapper数が過度に上がりリソースを取得できなかっ た 2.Mapper数が少なく1Mapperで処理できるデータ量を 超えてしまった
  • 30. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 30 原因1 対象とするInputデータに対して1Mapperあたりのデー タサイズが小さすぎた為、Mapper数が過度に上がり リソースを取得できなかった
  • 31. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 31 原因1 正常に終了するケース Inputデータ Map 1 Map 2 Map n 取得できるリソース
  • 32. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 32 原因1 エラーになるケース Inputデータ Map 1 Map 2 Map m 取得できるリソース
  • 33. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 33 原因2 対象とするInputデータに対して1Mapperあたりのデー タサイズが大きすぎた為、 Mapperで集約する際に OutOfMemoryが発生してしまっていた
  • 34. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 34 原因2 正常に終了するケース Inputデータ Map 1 Map 2 Map n 1Mapで扱えるデータ量
  • 35. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 35 原因2 エラーになるケース Inputデータ Map 1 Map 2 1Mapで扱えるデータ量 Map m
  • 36. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 36 対策 運用しながら1Mapperが扱うデータサイズを調整する 原因 対策 Mapperが過度にあがる 1Mapperが扱う最小のデータ量を調整 tez.grouping.min-size 1Mapperが扱うデータ量が多い 1Mapperが扱う最大のデータ量を調整 tez.grouping.max-size
  • 37. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 37 対策 Inputデータ Map 1 Map 2 Map n 1Mapで扱えるデータ量 取得できるリソース
  • 38. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 安定稼働のために 38 安定的に動かすために必要なこと ・1Mapperが扱うデータ量を設定する ・増加するデータ量に対応する設定を入れる ・実際のデータで運用してチューニングしていく ・チューニングパラメータの変更を容易にしておく
  • 39. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. アジェンダ 39 ・自己紹介 ・Hive on Tezとは ・適用システムについて ・性能改善のために ・安定稼働のために ・最後に
  • 40. Copyrig ht © 2017 Yahoo Japan Corporation. All Rig hts Reserved. 最後に 40 再認識できたこと デプロイメントサイクルを早くすることの重要性 ・早くリリースし本番環境、本番のデータで運用していくこと が重要 ・予測できない事への修正、チューニングパラメータの迅速 な変更が重要