104 Views
March 15, 17
スライド概要
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
Prestoクエリログの保存/ 分析機能の構築 2017年3月15日 ヤフー株式会社 クエリエンジンチーム Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 曾臻
Agenda 1. 2. 3. 4. 5. 6. 2 自己紹介 現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Agenda 1. 2. 3. 4. 5. 6. 3 自己紹介 現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
1.自己紹介 名前 : 曾 臻 所属 :ヤフー株式会社 D&Sソリューション 統括本部 クエリエンジン 経歴 : Presto開発・運用 広告システム開発 4 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Agenda 1. 2. 3. 4. 5. 6. 5 自己紹介 現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
2.現在の課題 Prestoを再起動したらクエリログが消える クエリ情報の保存は上限がある JVMのMetrics分析が難しい 6 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Agenda 1. 2. 3. 4. 5. 6. 7 自己紹介 現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ 最初の試み • SYSTEMコネクターでクエリの履歴を取得 • 定期的にクエリ情報をほかのデータベースに保存 SELECT * FROM system.runtime.queries; 8 参考:https://prestodb.io/docs/current/connector/system.html Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ データの保存はまだ課題: • 保存前にクラスターを再起動したら、クエリログが消える • 頻繁すぎると、クラスターの負担になる 解決方法: • クエリ実行でトリガーする 9 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ 去年からTeradata、日本テラデータとCoDevを行っている アメリカ出張でBootcampを実施 Prestoの内部構成、開発手法等を教えてもらった ハーバード大学も見学(頭が少し良くなった気がする) 日本に戻った後でも活発的に交流している 10 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ コミュニティのエンジニアと意見を交換 1. EventListenerでクエリログ保存 EventListener: https://prestodb.io/docs/current/develop/event-listener.html 2. JMXコネクターでJVMのMetrics保存 JMX: 11 https://prestodb.io/docs/current/connector/jmx.html Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ PrestoのPluginを開発し、 クエリ情報をJSONファイルに保存 12 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ 13 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:クエリログ クエリログの保存: Frontend UI (1) HTTP requests Presto Coordinator (3)Use Fluentd plugin to send logs (2) Run queries and write logs Presto Presto Presto Worker Worker Worker 14 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Object storage
3.Prestoログの保存:JMX JVM情報もPresto JMXコネクターを 利用して、簡単に取れた。 参考:https://prestodb.io/docs/current/connector/jmx.html しかしどうやって保存? 15 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:JMX JMX情報保存の流れ: JVM Metrics →Fluentd plugin + Presto JMX Connector → Fluentd s3 plugin → 社内Object Storage 16 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
3.Prestoログの保存:JMX JMX情報の保存: (1) JMX Connector(HTTP requests) select * from "java.lang:type=operatingsystem" Presto Coordinator (3)Use Fluentd plugin to send logs (2) Run queries and write logs Presto Presto Presto Worker Worker Worker 17 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Object storage
Agenda 1. 2. 3. 4. 5. 6. 18 自己紹介 現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
4.Prestoログの分析 19 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
4.Prestoログの分析 20 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
4.Prestoログの分析 分析 21 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
4.Prestoログの分析 • JSONをObject Storageに保存 • Hive MetastoreでTableを作成 • SQL文で、Slow Query/リソース利 用の分析 22 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
Agenda 1. 2. 3. 4. 5. 6. 23 自己紹介 自己紹介現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
5.アーキテクチャ Hive metastore (1-2)SQL with JMX Connector (HTTP requests) Frontend UI (1-1) SQL Query(HTTP requests) Presto Coordinator (3)Use Fluentd plugin to send logs (2) Run queries and write logs Presto Presto Presto Worker Worker Worker 24 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Object storage
Agenda 1. 2. 3. 4. 5. 6. 25 自己紹介 現在の課題 Prestoログの保存 Prestoログの分析 アーキテクチャ まとめ Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
6.まとめ 1)課題解決 • クエリ保存:Presto plugin 開発 • JMX情報保存: JMX connector + fluentd plugin活用 2)OSSコミュニティとの交流 • 機能追加が順調にできた • コミュニティへの還元もしていきたい 26 Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .
EOP Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .