2.4K Views
March 15, 19
スライド概要
2019年3月14日開催された Hadoop / Spark Conference Japan 2019 のライトニングトークで発表した資料です。
Apache SparkをAPI経由でRESTfulに利用できるApache Livyをプロダクション環境に導入した話になります。
Apache Livyを入れることで、jupyterやAirflowなど他のシステムとの連携も簡単にすることが可能になります。
https://hcj2019.eventbrite.com/
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
SparkをRESTfulに利用できる Apache Livyを導入した話 Hadoop / Spark Conference Japan 2019 ヤフー株式会社 植草 智輝
自己紹介 経歴/利用技術 • 2016-2018 : コマース系データETL & OLAP基盤開発 • • • • データ&サイエンスソリューション統括本部 データプラットフォーム本部 グリッド部 HadoopDevOps 植草 智輝 @tmk_ueks Hive on Tez (ETL) Apache Kylin/Apache HBase (OLAP) Apache Airflow (Workflow Engine) 2018-2019 : 全社HadoopクラスタのDevOps • • • Apache Hadoop全般 (運用/改善) Apache Spark (推進) Apache Livy (検証/導入) 趣味 • 海外ドラマ鑑賞 2
Agenda • Apache Livyの紹介 • 導入モチベーション • 冗長化(HA)の苦労話 • まとめ 3
Apache Livy • ClouderaとMicrosoftが開発したOSS • SparkをRESTfulに利用できるAPIサーバー • Amazon EMR, Microsoft HDInsight, IBM Cloudなどで利用可能 • REST APIを利用して柔軟にSparkの実行が可能 • 現在はApacheのincubatorプロジェクト • 最新verは0.5.0 4
導入のモチベーション • もっと柔軟にSparkを利用できるようにして、外部システムとの連携性を高めたい • マルチテナント環境でSparkジョブの安全に行いたい(設定値の制限など) • Jupyter/Zeppelinなどのインタラクティブなノートブックを使いたい 5
Yahoo! JAPANのクラスタコンポーネント API HiveServer2 Oozie Query Processing Hive Pig SparkSQL Execution Engine Tez MapReduce Spark Resource Management HttpFS YARN File System HDFS 6
Yahoo! JAPANのクラスタコンポーネント API HiveServer2 Oozie Livy Query Processing Hive Pig SparkSQL Execution Engine Tez MapReduce Spark Resource Management YARN File System HDFS 7 HttpFS
構成 (導入検討中…) Hadoopクラスタ YARN LB Driver Executor Livy Server Executor Livy Server HDFS Executor Livy Server Kerberos Zookeeper 8 Executor
苦労1: 認証 Hadoopクラスタ YARN LB Livy Server ✖ Driver spnego Executor Executor Livy Server HDFS Executor Livy Server ✖ Kerberos Zookeeper 9 Executor
苦労2: セッション情報 Hadoopクラスタ YARN LB ID:13 Driver Executor Livy Server ID:13 Executor Livy Server HDFS 書き込み Executor ID:12 Livy Server 上書き 書き込み Kerberos Zookeeper 10 Executor
LIVY-11 11
LIVY-11 12
結論 : 構成 Ambari Hadoopクラスタ YARN オートリスタート LB Driver Livy Server Executor Executor HDFS Livy Server Executor Kerberos Zookeeper 13 Executor
導入後 • SparkジョブがLivy経由でされるようになった • 運用側が設定値の制限などをかけられるため、安全性が増した • 特別な設定が不要となり、クライアント側の負担が減った • ワークフローエンジンなどの外部システムとの連携もしやすくなった • 各自のJupyter/ZeppelinからSparkを利用可能になった • notebookの恩恵を受けれるようになった(データの視認性など) • 分析/検証/ジョブ開発などのサイクルが早くなった • Sparkの利用者が増えた 14
まとめ • SparkをRESTfulなサービスとして、柔軟な実行が可能になる • Jupyter/Zeppelinなどのnotebookの恩恵を受けれる • 頑張って冗長構成を取ろうとすると、苦労する • 公式での対応がまだされていない(時間取れたら対応します。) • 負荷分散が出来ない • (YJの環境だと)Kerberos認証周りで特殊な設定が必要だった 15