Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

僕とヤフーと時々Teradata #prestodb

1,111 views

Published on

Published in: Technology
  • DOWNLOAD FULL BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

僕とヤフーと時々Teradata #prestodb

  1. 1. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ヤフー株式会社 岡田幸大 Presto 僕とヤフーと時々Teradata
  2. 2. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 自己紹介 • 岡田 幸大 • github - yuokada • Like: #python, #golang • 2009/04 ヤフー入社(新卒) • 2016/10 クエリーエンジン・チーム〜現在 • Presto歴 半年とチョット
  3. 3. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . アジェンダ • 会社紹介 • クラスター事例紹介 • Presto周りのツール・OSS紹介 • presto-audit • presto-admin (おまけ) • まとめ
  4. 4. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Y!J is Multi Big Data Company サービス数は100以上 メディア、コマース、金融・決済など、幅広くサービスを展開
  5. 5. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Y!J is Multi Big Data Company データのバラエティも100以上 検索キーワード、ビュー/クリック、コンテンツ、購買情報、など、 多様なデータを活用可能
  6. 6. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Y!J is Multi Big Data Company 6 月間 674億PV / 1日9,000万UB PC + その他 281億 PV Smart Phone 393億 PV FY16-3Q事業指標 http://ir.yahoo.co.jp/jp/archives/present/2016q3/index.html
  7. 7. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Y!J is Multi Big Data Company NoSQLHadoop RDB 7,000 nodes 150PB 1000 DBs 2,000 nodes Object Storage 1,500 nodes
  8. 8. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Y!J is Multi Big Data Company 様々なストレージにあるデータを インタラクティブに分析する必要がある そこで選ばれたのがPresto これらのマルチビッグデータを活かすには?
  9. 9. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 広告入稿系レポートシステム
  10. 10. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 あるところにこんなシステムがありました...
  11. 11. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 • ユーザーの操作履歴をNFS上に保存 • ログファイルはPlain Text & 独自フォーマット • 3年間で約40TB(非圧縮) • 集計・レポート生成処理はgrepベース 広告入稿システム - システムサマリー 重いレポートの出力にかかる時間: 80分
  12. 12. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース – その1 2016年某日、NFS管理チームからのお知らせ。 「2017年9月でNFS退役させるからヨロシク」 EOSL宣言! そしてシステム刷新の気配!
  13. 13. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 まずは、NFSの後継探し ヤフー社内で開発・運用され実績もあるObject Storageを選定。 Object Storageの詳細はslideshareで。
  14. 14. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 NFSのEOSL問題は解決した。 だが、レポート出力が遅い問題が残っている。
  15. 15. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 そこで出てきたのが
  16. 16. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 Prestoを採用するなら ファイルフォーマットも カラムナフォーマットに変えよう!
  17. 17. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 • 社内で実績があった • Hadoopクラスターで 採用済み • 社内のノウハウを活用 しやすい ORCを選んだ理由
  18. 18. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 • ORC化前: 1ヶ月分のログで約770GB(非圧縮) • ORC化後: 1ヶ月分のログで約20GB ORC化でファイルサイズが劇的に減少 圧縮率97%の驚異的なサイズダウン!
  19. 19. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 ディレクトリ構成 旧システム (Before Presto) アカウント毎の1階層 現行システム (After Presto) 日時と アカウントのハッシュ値 による2階層 Object Storage上のファイル配置を見直し
  20. 20. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 旧システム 現行システム ログの保存場所 NFS Object Storage ログファイルの フォーマット Plain text & 独自フォーマット ORCフォーマット ディレクトリ構成 アカウント毎 日毎&アカウントの ハッシュ値で分散 集計処理 grepベース Presto 大幅なモダン化を達成!!
  21. 21. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース – その1 JobQueue Frontend Batch Object Storage
  22. 22. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 80 1.5 0 10 20 30 40 50 60 70 80 90 レポートAの出力までの時間 レポート出力にまでの時間 Before After ケース – その1 旧システムで80分かかって いたレポートが 新システムで約1分に短縮!! 約97%の時間短縮! レポート出力まで時間
  23. 23. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . ケース - その1 今回のシステム刷新はほぼ成功(自分視点)。 ここまでするのにいろいろ苦労もありました。
  24. 24. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 今回のPresto導入で辛かったこと • Javaに慣れてないと変換が辛い • PrestoのINSERTでORCファイルを生成可能だが PrestoのリソースをSELECTに集中させたいので❎ ORCファイルへの変換が手間
  25. 25. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 今回のPresto導入で辛かったこと • クエリの条件次第でベストなディレクトリは違う • Ex. 月次レポート • Ex. アカウント毎のレポート • どのクエリに対しても一定程度の時間で完了するディ レクトリ構成を見つけるまでに時間を消費した Object Storage上のディレクトリ構成
  26. 26. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 今回のPresto導入で辛かったこと • coordinatorが冗長化出来ない • 1クラスターに2台以上Coordinatorが登録出来ない • ダウンタイム・ゼロの運用は厳しい • NW設計大事!! • NWトラフィックが凄く出る • DCまたいだトラフィックはダメ絶対! 他にも課題が沢山 細かい話は懇親会で。
  27. 27. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . Presto周辺のツール・OSS紹介
  28. 28. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介
  29. 29. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 1. Prestoの再起動でクエ リログが消える 2. クエリの保存数に上限 運用面からのPrestoの課題
  30. 30. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 • SYSTEMコネクターでクエリ履歴を取得 • 取得したクエリ情報をObject Storageに保存 クエリログ保存のための初期実装
  31. 31. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 1. ログ保存までにPrestoで再起動が発生すると取りこぼす 2. 実行頻度を上げるとシステムの負荷が上がる クエリログ保存のための初期実装の課題
  32. 32. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 • Teradataに質問してみた。 • ヤフーとTeradataで結んでいるCoDev契約の一環。 いわゆる、コンサルティング契約。 • Teradataからの回答で EventListenerを使った実装を提案された。 • EventListenerの詳細は割愛。 初期実装の課題を解決するために… https://prestodb.io/docs/current/develop/event-listener.html
  33. 33. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 • EventListener Interfaceの queryCompleted methodを実装 • QueryCompletedEventから各種 統計情報を取り出し • 取得レコード数 • 実行時間、etc • jsonに変換しファイルに出力 一部カット presto-auditの実装解説
  34. 34. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 • presto-auditでファイルに出力したログをfluentdで回収 • fluentdからObject Storageにアップロード • (Future Work) • 利用状況の可視化 • データ増加に伴うクエリの遅延検知 • Workerのオートスケール ヤフーでの利用例
  35. 35. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-auditの紹介 githubで近日公開予定。 (ただいま、Teradataレビュー + 社内手続き中💦) presto-audit 今後の予定 https://github.com/yahoojapan
  36. 36. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-adminの紹介
  37. 37. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-adminの紹介 • Teradataが開発した運用ツール • Python製運用ツールFabricのラッパー • Presto周りの様々なオペレーションをカバー • Prestoサーバーの起動・停止 • カタログの追加・削除 • rpmパッケージのインストール • etc presto-adminとは?
  38. 38. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-adminの紹介 Pros • インストールが簡単 (ただし、2.x以降) • Fabricの拡張なので学習コスト低め Cons • 一部機能がRedhat系OSのみでのサポート • 複数クラスターの管理が不可 • 並列数の制御が不可 = クラスター全台を並列でオペレーション 開発者向け軽量管理ツールとしてGood Presto-adminのPros/Cons
  39. 39. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-admin 1. pip経由でpresto-adminのインストール 2. config.jsonの作成 3. パッケージのインストール(jdk, presto本体, etc) 4. カタログの作成・追加 presto-adminのクイックスタート
  40. 40. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-admin たったこれだけ! pipコマンド1発でインストール $ pip install prestoadmin 1.pip経由でインストール
  41. 41. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-admin $ cd $HOME/.prestoadmin/ $ vim config.json $ cat config.json { "username": "yuokada", "coordinator": "coordinator.example.com", "workers": ["worker[01-03].example.com”] } 2. config.jsonの作成 注目
  42. 42. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 閑話休題: presto-admin range format • 2.2からの新機能 • workerノードで使える 短縮記法
  43. 43. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved .Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . 閑話休題: presto-admin 2.1以前の記法 2.2で使える記法
  44. 44. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-admin • $ presto-admin package install /local/path/to/jdk.rpm • # ローカルのPresto rpmパッケージをインストール $ presto-admin server install /local/path/to/presto.rpm • # 最新のPrestoをインストール $ presto-admin server install latest 3. jdk、Presto本体のインストール
  45. 45. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . presto-admin # hiveとの接続プロパティファイルを作成 $ cd $HOME/.prestoadmin/catalog $ vim myhive.properties # myhiveのカタログをクラスター全台にインストール $ presto-admin catalog add myhive $ presto-admin server restart 4. カタログファイルの追加
  46. 46. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . まとめ • 社内の多種多様なストレージをつなぐため日々尽力 • prestoを始めるのは簡単 • presto-adminと合わせてスタートするのがGood • 運用者視点から見ると課題は多い • 利用方法を間違えなければスゴく良いプロダクト Y!JでのPrestoはまだ始まったばかり Let’s Play
  47. 47. Co p yrig ht © 2 0 1 7 Yaho o Jap an Co rp o ratio n. All Rig hts Reserved . EOP Thank you!

×