目的
EMRをリモートサーバーとして手元のVisualStudioCodeからコードをsubmitしたい。
モチベーション
- Sparkを手元で簡単に検証してからクラスタにSubmitしたい。 (ex. デバッグにクラスタ使うのはもったいない)
- Jupyter より VSCodeを使いたい(ex. ブラウザの調子が悪い)
- Notebook より pythonファイルベタ打ちしたい (ex. コードセントリックに書きたい)
- gitでの管理を入念に行いたい(ex. Juypter notebookの差分は見ずらい)
- AzureよりAWSが好き(ex. 〇〇が好きだからAWS)
やり方
- EMR側でクラスタを立ち上げる
詳細設定でLivyを立ち上げること。
適切なセキュリティ設定を行う(Livyポート 8998 を開ける)
「アプリケーションの履歴」タブからLivyのエンドポイントを確認する。(タブの名前、変ね)
ご利用は計画的に。
- Microsoft謹製のSpark & Hive Tools Extensionを使う。
(おい、それはHDInsight用だろ、と諦めない。)
- 上記を少しトリックする
トリックするといっても、VSCodeのAzure ExtensionにてAzureにログインするだけ。HDInsightのリソースを作る必要はない。Azure側はゼロコスト。ごめんなさいM$様。
- Generic Livy Endpointを指定する
Link a Clusterする。
Generic Livy Endpointを選び、EMRのEndpointを指定する。
ExtensionのOutputにこういうメッセージが出れば、ひとまずOK。
もう少しトリックが必要かと思ったけど、HDInsightしばりが緩いようなので、楽々でした。