SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
2017 Dec 22
CyberAgent, Inc. All Rights Reserved
Presto on YARNの導入・運用
飯島 賢志
● 2012年3月入社
● 技術本部 秋葉原ラボ
● データ解析基盤Patriotまわりの開発・運用
● 運用してきたOSS
○ Hadoop, Spark, Presto, Hive, HBase, Flume,
Ignite, Zeppelin, Elasticsearch etc...
自己紹介
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要
○ 構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要
○ 構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
● Hadoopベースのデータ解析基盤
○ HDFS, YARN, Hive, HBase, Flume, Spark, etc
○ Bigtopで内製化したパッケージを使用
● メディアサービスのデータを集約
○ 2.5 PB / 5.0 PB (3 replica)
■ 5〜7 TB / day
○ 約700テーブル、12,000,000パーティション
○ 6000スケジュールジョブ + アドホックジョブ
データ解析基盤Patriot
クラウド機械学習基盤
システム構成
Patriot
データ転送管理
リアルタイム処理基盤
HTTP API
/ WebUIMySQL
etc..
Logs
● Hadoop 2.7.3 + patch → 2.8.1 + patch
● Spark 2.1.0 + patch
● Hive 2.1.1 + patch
● HBase 1.3.0 → 1.3.1 + patch
● Zookeeper 3.4.6
● Flume 1.8.0 (trunk) + patch
● Presto YARN 1.5
○ Presto 0.179 + patch (kafka対応) → 0.190
○ Slider 0.92.0
● Kafka 0.11.0
● Zeppelin 0.7.3
利用中のパッケージ
New!
New!
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要
○ 構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
● Presto YARN Integration
○ Prestoが入ったコンテナをYARN上で起動
○ Patriotでは運用始めて5ヶ月
○ "Presto YARN", "presto-yarn"ともいう
● セットアップ
○ GUI:Ambari Slider Views in HDP
○ 手動:Apache Slider
● Git
○ 最新:v1.5
○ https://github.com/prestodb/presto-yarn
Presto on YARN
● YARNの上にのってるだけで動作はnativeなPrestoと同じ
Architecture
HDFS
YARN
Presto
Coordinator
Presto
Worker
:
Presto
Worker
Presto
Worker
User
● リソース管理
○ Spark, Hiveなど含めYARNで一元管理できる
● デプロイ
○ Ansibleなどで何十台に設定反映が不要
○ コンテナの起動と同時にパッケージ配布するので
アップグレードも容易
● オペレーション
○ 一斉再起動が手軽にできる
● 自動再起動
○ プロセスが落ちてもリトライする
なぜ Presto YARN か
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要
○ 構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
● Facebookが開発した分散SQLエンジ ン
● インメモリ
○ 中間データをディスクに書かないので高速
● コネクター
○ 色々な外部データソースに接続できる
■ e.g. Hive, Kafka, Accumulo, Cassandra
● バージョン
○ 最新 v0.191
Presto
Apache Slider
● YARNに分散Applicationをデプロイできる
○ c.g. HBase, Storm, Accumulo
● HDPだと
○ Ambariから使う方が一般的
● YARNに取り込まれた
○ YARN-4692 [Umbrella] Simplified and first-class support for services in YARN
○ YARN-5079 [Umbrella] Native YARN framework layer for services and beyond
○ Gitの階層だとココ
hadoop-yarn-project > hadoop-yarn > hadoop-yarn-applications >
hadoop-yarn-services > hadoop-yarn-services-core
Slider Deploy App Flow
Slider
Client
① Launch
HDFS
YARN Resource Manager②
Container (Application Master)
HDFS
YARN Node Manager
Slider App Master
③
Zookeeper
YARN
Service Registry
⑤
Container
HDFS
YARN Node Manager
App
Slider
Agent
:
④
Container
HDFS
YARN Node Manager
App
Slider
Agent
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要・構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
ビルド例 - Presto YARN
● Maven
※追加したいプラグイン (jar) あれば下記に追加してビルド
  presto-yarn-package/src/main/slider/package/plugins/
● できたパッケージ
○ Sliderがこれをデプロイする
○ presto-yarn-package/target 配下
$ git clone https://github.com/prestodb/presto-yarn.git
$ cd presto-yarn
$ mvn package -Dpresto.version=0.190 -DskipTests
presto-yarn-package-1.5-0.190.zip
● Slider applicationとして起動
起動 - Presto YARN
$ slider package --install
--name PRESTO
--replacepkg
--package presto-yarn-package-1.5-0.190.zip …… Slider clientの起動 (local)
$ slider create presto-yarn
--template appConfig.json
--resources resources-multinode.json  …………… Presto YARNの起動 (yarn)
※設定ファイルは後述
● AppConfig.json
設定例 - Presto YARN
 ………………………………… ラベル (インスタンスの種類)
     ……………………… 起動の順番
             … 配置ポリシー (ANTI_AFFINITY)
          ………… インスタンス数
    ………………………… コア数
      …………………… メモリ(MB)
"global": {
"site.global.app_user": "yarn",
"site.global.user_group": "hadoop",
"site.global.data_dir": "/var/tmp/presto-yarn/data/", …………… ログなどのパス
"site.global.config_dir": "/var/tmp/presto-yarn/conf/",  ………… 設定ファイルのパス
"site.global.app_name": "presto-server-0.190",
"site.global.singlenode": "false",  ………………………………… 1ホストに共存させるか
"site.global.coordinator_host": "{{ coordinator.host }}",
"site.global.presto_query_max_memory": "800G",  …………… 1クエリの最大メモリ
"site.global.presto_query_max_memory_per_node": "10G", … 1ノードの最大メモリ
"site.global.presto_server_port": "9010",
"site.global.jvm_args": "['-Xmx20G', … ]", ……………………… JVM設定
   :
● AppConfig.json (続き)
設定例 - Presto YARN
"global": {
  :
"site.global.catalog ": "{'hive': ['hive.metastore.uri= … ]}", ………… カタログ設定
"site.global.plugin": "{'patriot': ['patriot-udf.jar', … ]}", ………………… 追加するプラグイン
"site.global.app_pkg_plugin": "${AGENT_WORK_ROOT} …/plugins", …… プラグインのコピー元
"site.global.log_properties":
   "['com.facebook.presto=INFO', … ]", ……………………………… ログレベル
"site.global.additional_config_properties":
   "['query.max-run-time=15m', … ]", …………………………………… プロパティ設定
"application.def":
   ".slider/package/PRESTO/presto-yarn-package-1.5-0.190.zip", … 展開するパッケージ
"java_home": "/usr/java/latest"
},
● resources-multinode.json
"global": {
"yarn.container.failure.threshold" : "0" ……… 失敗のリトライ回数 (無制限)
},
"components": {
"COORDINATOR": {  ………………………… ラベル (インスタンス種類)
"yarn.role.priority": "1", ……………………… 起動の順番
"yarn.component.placement.policy": "4",  … 配置ポリシー (ANTI_AFFINITY)
"yarn.component.instances": "1",  ………… インスタンス数
"yarn.vcores": "8", …………………………… コア数
"yarn.memory": "20480"  …………………… メモリ(MB)
},
:
設定例 - Presto YARN
● resources-multinode.json (続き)
:
"components": {
:
"WORKER": {  ………………………………… ラベル (インスタンス種類)
"yarn.role.priority": "2", ……………………… 起動の順番
"yarn.component.placement.policy": "4",  … 配置ポリシー (ANTI_AFFINITY)
"yarn.component.instances": "84", ………… インスタンス数
"yarn.vcores": "16",  ………………………… コア数
"yarn.memory": "20480"  …………………… メモリ(MB)
}
}
設定例 - Presto YARN
● slider-site.xml
  ※別途 YARN service registry 設定 (yarn-site.xml) も必要
設定例 - Slider
 ………………………………… ラベル (インスタンスの種類)
     ……………………… 起動の順番
             … 配置ポリシー (ANTI_AFFINITY)
          ………… インスタンス数
    ………………………… コア数
      …………………… メモリ(MB)
<configuration>
<property>
<name>yarn.resourcemanager.address</name> … ResourceManagerのホスト
<value>{{ resouceManager.host }}:8088</value>
</property>
<property>
<name>slider.zookeeper.quorum</name> ………… YARN Service RegistryのZookeeper
<value>{{ zookeeper.host1 }}:2181, ...</value>
</property>
</configuration>
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要・構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
● Slider should not allow to allocate twice containers on the same node
○ placement: ANTI_AFFINITYにしても解決せず
■ 現象: CoordinatorとWorkerを同じホストで起動しようとして
どちらかがエラーになる
■ 対応: CoordinatorだけPresto YARNとは別立てにした
Workaround
https://github.com/prestodb/presto-yarn/issues/22
カラムナーフォーマット
● Apache ORC
○ カラムの統計をもちIndexに利用
■ count, min, max, sum…
○ Spark 2.3.0でHive依存のORCから脱却
※SPARK-20682
● Apache Parquet
○ ネスト構造を効率よく扱える
○ 実はIndex headerが実装されてない
(昔からRoadMapにはある)
https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L505-L507
ORC fileの構造
● Grafana/OpenTSDB
○ JVMメトリクスを可視化
■ PrestoのREST API
■ データはHBaseに保存
モニタリング
● 利用者を広げる
● 利用状況の統計などもっと取る
○ System Connector
● 稀に一部Workerが動かなくなる事象
○ チューニングして解消した(?)
■ https://github.com/prestodb/presto/issues/4292
● exchange.http-client.request-timeout=120sなど
○ 引き続き確認
今後のタスク
● データ解析基盤Patriotの紹介
● Presto on YARN
○ 概要・構成要素 (Presto, Slider)
○ 導入・設定
○ 運用
● 今回紹介しなかった取り組み
本日の内容
今回紹介しなかった取り組み
● Kudu
○ Fast Data 処理向けに検証中
● Zeppelin
○ Sparkなど分散処理環境へのアクセシビリティ向上
○ 解析方法・結果の共有を容易に
● TensorFlow
○ GPUマシン環境
○ Hadoop環境 - TensorFlow on Spark
● Kafka
○ ストリーム処理のハブとして
● Hadoopクラスタ管理ツールの開発
○ 各プロセスの開始・停止、Rolling Restart/Upgrade
○ Zookeeper経由でGitと連携し設定変更など
● Prometeus
○ 監視まわりの置き換えで検証中
今回紹介しなかった取り組み

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話S3 整合性モデルと Hadoop/Spark の話
S3 整合性モデルと Hadoop/Spark の話
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 

Ähnlich wie Presto on YARNの導入・運用

Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
Ryan Poy
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 

Ähnlich wie Presto on YARNの導入・運用 (20)

TripleOの光と闇
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
Oracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドOracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイド
 
Oracle R Advanced Analytics for Hadoop利用方法
Oracle R Advanced Analytics for Hadoop利用方法Oracle R Advanced Analytics for Hadoop利用方法
Oracle R Advanced Analytics for Hadoop利用方法
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
 
Hadoop-3.2.0の新機能の紹介とJava9+対応のコミュニティ動向
Hadoop-3.2.0の新機能の紹介とJava9+対応のコミュニティ動向Hadoop-3.2.0の新機能の紹介とJava9+対応のコミュニティ動向
Hadoop-3.2.0の新機能の紹介とJava9+対応のコミュニティ動向
 
データ活用を効率化するHadoop WebUIと権限管理改善事例
データ活用を効率化するHadoop WebUIと権限管理改善事例データ活用を効率化するHadoop WebUIと権限管理改善事例
データ活用を効率化するHadoop WebUIと権限管理改善事例
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a Service
 
Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
 
Start of a New era: Apache YARN 3.1 and Apache HBase 2.0
Start of a New era: Apache YARN 3.1 and Apache HBase 2.0Start of a New era: Apache YARN 3.1 and Apache HBase 2.0
Start of a New era: Apache YARN 3.1 and Apache HBase 2.0
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
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
 
20181228 ncf to_azure_batch
20181228 ncf to_azure_batch20181228 ncf to_azure_batch
20181228 ncf to_azure_batch
 
Apache Ambari Overview -- Hadoop for Everyone
Apache Ambari Overview -- Hadoop for EveryoneApache Ambari Overview -- Hadoop for Everyone
Apache Ambari Overview -- Hadoop for Everyone
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 

Mehr von cyberagent

Mehr von cyberagent (20)

WWW2019で見るモバイルコンピューティングの技術と動向 山本悠ニ
WWW2019で見るモバイルコンピューティングの技術と動向    山本悠ニWWW2019で見るモバイルコンピューティングの技術と動向    山本悠ニ
WWW2019で見るモバイルコンピューティングの技術と動向 山本悠ニ
 
Web フィルタリング最前線: 「「検閲回避」回避」 角田孝昭
Web フィルタリング最前線: 「「検閲回避」回避」    角田孝昭Web フィルタリング最前線: 「「検閲回避」回避」    角田孝昭
Web フィルタリング最前線: 「「検閲回避」回避」 角田孝昭
 
WebにおけるHuman Dynamics 武内慎
WebにおけるHuman Dynamics    武内慎WebにおけるHuman Dynamics    武内慎
WebにおけるHuman Dynamics 武内慎
 
Webと経済学 數見拓朗
Webと経済学    數見拓朗Webと経済学    數見拓朗
Webと経済学 數見拓朗
 
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組みData Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
 
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
継続的な開発スタイル AbemaTVのiOSアプリを週1でリリースしている話
 
AbemaTVにおける推薦システム
AbemaTVにおける推薦システムAbemaTVにおける推薦システム
AbemaTVにおける推薦システム
 
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポートAbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
AbemaTV レコメンド開発エンジニアによる RecSys 2018 参加レポート
 
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
機械学習エンジニアを見せたAWSの再:発明とは? 〜re:Invent 2018 参加レポート〜
 
インターネットテレビ局「AbemaTV」プロダクトの変遷
インターネットテレビ局「AbemaTV」プロダクトの変遷インターネットテレビ局「AbemaTV」プロダクトの変遷
インターネットテレビ局「AbemaTV」プロダクトの変遷
 
番組宣伝に関するAbemaTV分析事例の紹介
番組宣伝に関するAbemaTV分析事例の紹介番組宣伝に関するAbemaTV分析事例の紹介
番組宣伝に関するAbemaTV分析事例の紹介
 
WWW2018 論文読み会  Webと経済学
 WWW2018 論文読み会  Webと経済学 WWW2018 論文読み会  Webと経済学
WWW2018 論文読み会  Webと経済学
 
WWW2018 論文読み会 WebにおけるHuman Dynamics
WWW2018 論文読み会 WebにおけるHuman DynamicsWWW2018 論文読み会 WebにおけるHuman Dynamics
WWW2018 論文読み会 WebにおけるHuman Dynamics
 
WWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and MiningWWW2018 論文読み会 Web Search and Mining
WWW2018 論文読み会 Web Search and Mining
 
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
サイバーエージェントの機械学習エンジニアが体験したGoogle I/O 2018
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
Orion an integrated multimedia content moderation system for web services
Orion  an integrated multimedia content moderation system for web servicesOrion  an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
 
Orion an integrated multimedia content moderation system for web services
Orion  an integrated multimedia content moderation system for web servicesOrion  an integrated multimedia content moderation system for web services
Orion an integrated multimedia content moderation system for web services
 
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018
 
"マルチメディア機械学習" の取り組み
"マルチメディア機械学習"  の取り組み"マルチメディア機械学習"  の取り組み
"マルチメディア機械学習" の取り組み
 

Kürzlich hochgeladen

Kürzlich hochgeladen (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: 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
 
論文紹介: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
 

Presto on YARNの導入・運用

  • 1. 2017 Dec 22 CyberAgent, Inc. All Rights Reserved Presto on YARNの導入・運用
  • 2. 飯島 賢志 ● 2012年3月入社 ● 技術本部 秋葉原ラボ ● データ解析基盤Patriotまわりの開発・運用 ● 運用してきたOSS ○ Hadoop, Spark, Presto, Hive, HBase, Flume, Ignite, Zeppelin, Elasticsearch etc... 自己紹介
  • 3. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要 ○ 構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 4. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要 ○ 構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 5. ● Hadoopベースのデータ解析基盤 ○ HDFS, YARN, Hive, HBase, Flume, Spark, etc ○ Bigtopで内製化したパッケージを使用 ● メディアサービスのデータを集約 ○ 2.5 PB / 5.0 PB (3 replica) ■ 5〜7 TB / day ○ 約700テーブル、12,000,000パーティション ○ 6000スケジュールジョブ + アドホックジョブ データ解析基盤Patriot
  • 7. ● Hadoop 2.7.3 + patch → 2.8.1 + patch ● Spark 2.1.0 + patch ● Hive 2.1.1 + patch ● HBase 1.3.0 → 1.3.1 + patch ● Zookeeper 3.4.6 ● Flume 1.8.0 (trunk) + patch ● Presto YARN 1.5 ○ Presto 0.179 + patch (kafka対応) → 0.190 ○ Slider 0.92.0 ● Kafka 0.11.0 ● Zeppelin 0.7.3 利用中のパッケージ New! New!
  • 8. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要 ○ 構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 9. ● Presto YARN Integration ○ Prestoが入ったコンテナをYARN上で起動 ○ Patriotでは運用始めて5ヶ月 ○ "Presto YARN", "presto-yarn"ともいう ● セットアップ ○ GUI:Ambari Slider Views in HDP ○ 手動:Apache Slider ● Git ○ 最新:v1.5 ○ https://github.com/prestodb/presto-yarn Presto on YARN
  • 11. ● リソース管理 ○ Spark, Hiveなど含めYARNで一元管理できる ● デプロイ ○ Ansibleなどで何十台に設定反映が不要 ○ コンテナの起動と同時にパッケージ配布するので アップグレードも容易 ● オペレーション ○ 一斉再起動が手軽にできる ● 自動再起動 ○ プロセスが落ちてもリトライする なぜ Presto YARN か
  • 12. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要 ○ 構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 13. ● Facebookが開発した分散SQLエンジ ン ● インメモリ ○ 中間データをディスクに書かないので高速 ● コネクター ○ 色々な外部データソースに接続できる ■ e.g. Hive, Kafka, Accumulo, Cassandra ● バージョン ○ 最新 v0.191 Presto
  • 14. Apache Slider ● YARNに分散Applicationをデプロイできる ○ c.g. HBase, Storm, Accumulo ● HDPだと ○ Ambariから使う方が一般的 ● YARNに取り込まれた ○ YARN-4692 [Umbrella] Simplified and first-class support for services in YARN ○ YARN-5079 [Umbrella] Native YARN framework layer for services and beyond ○ Gitの階層だとココ hadoop-yarn-project > hadoop-yarn > hadoop-yarn-applications > hadoop-yarn-services > hadoop-yarn-services-core
  • 15. Slider Deploy App Flow Slider Client ① Launch HDFS YARN Resource Manager② Container (Application Master) HDFS YARN Node Manager Slider App Master ③ Zookeeper YARN Service Registry ⑤ Container HDFS YARN Node Manager App Slider Agent : ④ Container HDFS YARN Node Manager App Slider Agent
  • 16. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要・構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 17. ビルド例 - Presto YARN ● Maven ※追加したいプラグイン (jar) あれば下記に追加してビルド   presto-yarn-package/src/main/slider/package/plugins/ ● できたパッケージ ○ Sliderがこれをデプロイする ○ presto-yarn-package/target 配下 $ git clone https://github.com/prestodb/presto-yarn.git $ cd presto-yarn $ mvn package -Dpresto.version=0.190 -DskipTests presto-yarn-package-1.5-0.190.zip
  • 18. ● Slider applicationとして起動 起動 - Presto YARN $ slider package --install --name PRESTO --replacepkg --package presto-yarn-package-1.5-0.190.zip …… Slider clientの起動 (local) $ slider create presto-yarn --template appConfig.json --resources resources-multinode.json  …………… Presto YARNの起動 (yarn) ※設定ファイルは後述
  • 19. ● AppConfig.json 設定例 - Presto YARN  ………………………………… ラベル (インスタンスの種類)      ……………………… 起動の順番              … 配置ポリシー (ANTI_AFFINITY)           ………… インスタンス数     ………………………… コア数       …………………… メモリ(MB) "global": { "site.global.app_user": "yarn", "site.global.user_group": "hadoop", "site.global.data_dir": "/var/tmp/presto-yarn/data/", …………… ログなどのパス "site.global.config_dir": "/var/tmp/presto-yarn/conf/",  ………… 設定ファイルのパス "site.global.app_name": "presto-server-0.190", "site.global.singlenode": "false",  ………………………………… 1ホストに共存させるか "site.global.coordinator_host": "{{ coordinator.host }}", "site.global.presto_query_max_memory": "800G",  …………… 1クエリの最大メモリ "site.global.presto_query_max_memory_per_node": "10G", … 1ノードの最大メモリ "site.global.presto_server_port": "9010", "site.global.jvm_args": "['-Xmx20G', … ]", ……………………… JVM設定    :
  • 20. ● AppConfig.json (続き) 設定例 - Presto YARN "global": {   : "site.global.catalog ": "{'hive': ['hive.metastore.uri= … ]}", ………… カタログ設定 "site.global.plugin": "{'patriot': ['patriot-udf.jar', … ]}", ………………… 追加するプラグイン "site.global.app_pkg_plugin": "${AGENT_WORK_ROOT} …/plugins", …… プラグインのコピー元 "site.global.log_properties":    "['com.facebook.presto=INFO', … ]", ……………………………… ログレベル "site.global.additional_config_properties":    "['query.max-run-time=15m', … ]", …………………………………… プロパティ設定 "application.def":    ".slider/package/PRESTO/presto-yarn-package-1.5-0.190.zip", … 展開するパッケージ "java_home": "/usr/java/latest" },
  • 21. ● resources-multinode.json "global": { "yarn.container.failure.threshold" : "0" ……… 失敗のリトライ回数 (無制限) }, "components": { "COORDINATOR": {  ………………………… ラベル (インスタンス種類) "yarn.role.priority": "1", ……………………… 起動の順番 "yarn.component.placement.policy": "4",  … 配置ポリシー (ANTI_AFFINITY) "yarn.component.instances": "1",  ………… インスタンス数 "yarn.vcores": "8", …………………………… コア数 "yarn.memory": "20480"  …………………… メモリ(MB) }, : 設定例 - Presto YARN
  • 22. ● resources-multinode.json (続き) : "components": { : "WORKER": {  ………………………………… ラベル (インスタンス種類) "yarn.role.priority": "2", ……………………… 起動の順番 "yarn.component.placement.policy": "4",  … 配置ポリシー (ANTI_AFFINITY) "yarn.component.instances": "84", ………… インスタンス数 "yarn.vcores": "16",  ………………………… コア数 "yarn.memory": "20480"  …………………… メモリ(MB) } } 設定例 - Presto YARN
  • 23. ● slider-site.xml   ※別途 YARN service registry 設定 (yarn-site.xml) も必要 設定例 - Slider  ………………………………… ラベル (インスタンスの種類)      ……………………… 起動の順番              … 配置ポリシー (ANTI_AFFINITY)           ………… インスタンス数     ………………………… コア数       …………………… メモリ(MB) <configuration> <property> <name>yarn.resourcemanager.address</name> … ResourceManagerのホスト <value>{{ resouceManager.host }}:8088</value> </property> <property> <name>slider.zookeeper.quorum</name> ………… YARN Service RegistryのZookeeper <value>{{ zookeeper.host1 }}:2181, ...</value> </property> </configuration>
  • 24. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要・構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 25. ● Slider should not allow to allocate twice containers on the same node ○ placement: ANTI_AFFINITYにしても解決せず ■ 現象: CoordinatorとWorkerを同じホストで起動しようとして どちらかがエラーになる ■ 対応: CoordinatorだけPresto YARNとは別立てにした Workaround https://github.com/prestodb/presto-yarn/issues/22
  • 26. カラムナーフォーマット ● Apache ORC ○ カラムの統計をもちIndexに利用 ■ count, min, max, sum… ○ Spark 2.3.0でHive依存のORCから脱却 ※SPARK-20682 ● Apache Parquet ○ ネスト構造を効率よく扱える ○ 実はIndex headerが実装されてない (昔からRoadMapにはある) https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L505-L507 ORC fileの構造
  • 27. ● Grafana/OpenTSDB ○ JVMメトリクスを可視化 ■ PrestoのREST API ■ データはHBaseに保存 モニタリング
  • 28. ● 利用者を広げる ● 利用状況の統計などもっと取る ○ System Connector ● 稀に一部Workerが動かなくなる事象 ○ チューニングして解消した(?) ■ https://github.com/prestodb/presto/issues/4292 ● exchange.http-client.request-timeout=120sなど ○ 引き続き確認 今後のタスク
  • 29. ● データ解析基盤Patriotの紹介 ● Presto on YARN ○ 概要・構成要素 (Presto, Slider) ○ 導入・設定 ○ 運用 ● 今回紹介しなかった取り組み 本日の内容
  • 30. 今回紹介しなかった取り組み ● Kudu ○ Fast Data 処理向けに検証中 ● Zeppelin ○ Sparkなど分散処理環境へのアクセシビリティ向上 ○ 解析方法・結果の共有を容易に ● TensorFlow ○ GPUマシン環境 ○ Hadoop環境 - TensorFlow on Spark
  • 31. ● Kafka ○ ストリーム処理のハブとして ● Hadoopクラスタ管理ツールの開発 ○ 各プロセスの開始・停止、Rolling Restart/Upgrade ○ Zookeeper経由でGitと連携し設定変更など ● Prometeus ○ 監視まわりの置き換えで検証中 今回紹介しなかった取り組み