Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon EMR で使う Hue

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Yasuhiko IWASE Yasuhiko IWASE
September 21, 2017

Amazon EMR で使う Hue

Hue Meetup 2017-09-20 発表資料
https://connpass.com/event/65052/

Hadoop の 標準WebUI であるHue を、Amazon EMR 上で使用する際の利点/欠点と、欠点を回避して便利に使うための方法を紹介します

補足資料
・Amazon EMR 上の WebUI群 ( Hue や Zeppelin ) をSSHトンネルなしでブラウザ表示する方法
https://qiita.com/yaiwase/items/907589155d90722533dc
・EMR 4->5 バージョン間で Hue データを移行する
https://qiita.com/yaiwase/items/1a2da951e002ce8f612f

Avatar for Yasuhiko IWASE

Yasuhiko IWASE

September 21, 2017
Tweet

More Decks by Yasuhiko IWASE

Other Decks in Technology

Transcript

  1. アジェンダ - 自己紹介 - データ分析環境の概要/システム構成 - Amazon EMR で使う Hue

    - Amazon EMR 概要 - Amazon EMR 上での Hue 利点/欠点 - 運用上のポイント1:Hue への接続方法の工夫 - 運用上のポイント2:Hue データの保全/移行 - まとめ
  2. 自己紹介 岩瀬 靖彦 [IWASE YASUHIKO] - 株式会社ミクシィ Vantageスタジオ システム部 所属

    - 主な担当 - データ分析系のインフラ構築/分析/レポート - 検索や機械学習まわりのプロダクト - 最近興味あること - RNNを使った自然言語処理 - 二児の(家事育児に追われつつできる)教育 https://qiita.com/yaiwase
  3. Hue の利用状況 - 非エンジニア含め数10-100人程度で利用 - クエリエディタで Hive クエリを生成して実行 - クエリにはカスタムUDF(内製)を作成/利用

    - 集計クエリ群はチーム間で共有/管理 - JobBrowser が便利 - MetastoreManager が便利 - 利用バージョン :Hue 3.10
  4. Amazon EMR 概要 Amazon ElasticMapReduce AWS で データフレームワーク (Apache Hadoop

    や Apache Spark など) の実行を簡素化して、大量のデータ処理および分析 するマネージド型クラスタサービス 関連するプロジェクト (Apache Hive や Apache Pig など) を使 用して、分析用のデータやBIワークロードを処理できる http://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide /emr-what-is-emr.html
  5. EMR 上での Hue 運用の利点/欠点 欠点 - ネットワーク設定が面倒 EMR 上の Hue

    は SSHトンネリングでの利用が推奨されて いるが設定は煩雑なため、非エンジニアが大人数で使うの は現実的でない - EMR と Hue の永続性のスタンスが違う EMR はクラスタ再構築前提だが、Hue は永続利用前提で セットアップされる(クラスタ再構築によって、ローカル保存 のHueデータが失われる)
  6. EMR上の Hue への接続方法:EMR推奨の方法(EMR Master へ SSH接続) EMR Master サーバへの SSH

    トンネリング http://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-we b-interfaces.html - 個別のクライアント(各個人のPC)とEMR Master サーバの間にSSHトンネルをセットアップする - SOCKSプロキシをたて、EMR Master 上にある 個別の WebUI に対してWebブラウザからアクセ スできるようにする
  7. EMR上の Hue への接続方法:EMR推奨の方法(EMR Master へ SSH接続) 利点 - 個別コンポーネントのWebUIに確実にアクセスでき る

    欠点(たくさんある・・) - チームメンバーに負担がかかる(非エンジニアにター ミナル操作/プロキシ設定を要求する) - SSHで繋ぐため、クライアント(各個人PC)にEMR master への秘密鍵を配る必要がある - クラスタ再構築のたび更新が必要になる - SSH接続してから WebUI 開くまで地味に時間がか かる
  8. EMR上の Hue への接続方法:方法1(EMR Master へ https 接続) EMR Master サーバの

    8888 ポートを開け、 HTTPS で Hue アクセスさせる - 8888 は Hue のデフォルトポート - 接続元をオフィス出口IPなどに制限する - hue.ini を編集してSSL接続のみ許可する ssl_certificate=/path/to/hue-domain.crt ssl_private_key=/path/to/hue-domain.pem
  9. EMR上の Hue への接続方法:方法1(EMR Master へ https 接続) 利点 - チームメンバーへの負担が全くない

    (ブラウザアクセスですぐ使える) - Hue に接続するだけなら設定が容易 欠点 - WebUI ごとにポート開放が必要 (TezUI/SparkUI など Hue 以外のもの) - WebUI ごとのhttps対応が手間 - Hue などでたどれないリンクが残る (internalドメインで自動生成されるURL)
  10. EMR上の Hue への接続方法:方法2(リバースプロキシ経由 https 接続) リバースプロキシ(LBでも可)を配置し、そのサー バ経由で Private 領域の Hue

    を参照する - EMR Master サーバとは別に、プロキシサーバを構 築する - クライアントからプロキシサーバは https、プロキシ サーバからは httpで Hue アクセスさせる(Hueの SSL設定は不要)
  11. EMR上の Hue への接続方法:方法2(リバースプロキシ経由 https 接続) 利点 - チームメンバーへの負担が全くない (ブラウザアクセスですぐ使える) -

    Hue 以外のWebUIの公開も容易 - コンテンツ書き換え処理によって、すべてのリンク をたどれるようにできる 欠点 - EMRとは別にプロキシサーバを構築する必要があ る
  12. EMR上の Hue への接続方法 まとめ:方法2(リバースプロキシ経由 https 接続) SNS mixi では 方法2(Global

    でなく VPN による Local Network 経由)を採用している 下記利点が得られる - 多数の非エンジニアに優しい - Hue 以外のWebUIの公開も容易 (TezUI/YarnResourceManager/SparkHistory UI なども容易に利用できる) - すべてのリンクを繋げられる 設定例:EMR 上の WebUI をSSHトンネルなしでブラウザ表示する方法 https://qiita.com/yaiwase/items/907589155d90722533dc
  13. Hue データの所在:デフォルトでは EMR Master サーバ内 Hue の設定にある、 Database 項 目に書かれたDBに格納されている

    (デフォルトはEMR Master サーバ 上) EMRとは別のサーバ/ストレージ にDBをおく方法もありかも?(アッ プグレード時のバージョン相違が問 題になりそう)->Dump/Loadが現 実的 /etc/hue/conf/hue.ini [[database]] engine = mysql name = huedb host = ip-xxx.xxx.compute.internal user = hue password = xxxxxxxxxx
  14. Hue データのバックアップ方法:Hue Shell dumpdata dumpdata コマンドでダンプ取得す る(移行時に不要なデータはオプ ション指定して削る) 定期的に Dump

    取得し、追加の Storage/S3 等に転送して履歴を 保存する - 履歴には数週間程度のライフ タイムを設定しておく - S3 なら信頼感高く安全にデー タ保全できる sudo /usr/lib/hue/build/env/bin/hue \ dumpdata \ --exclude auth.permission \ --exclude contenttypes \ > hue_data_backup.json
  15. Hue バックアップデータのリストア方法:Hue Shell loaddata Storage/S3 等から移行先EMRク ラスタへ Hue データを展開し、 loaddata

    コマンドでHue DB へデー タを流し込む Load が正常に行われれば、移行 元のクラスタと全く同様にHueログ イン/操作できる sudo /usr/lib/hue/build/env/bin/hue \ loaddata \ hue_data_backup-jq.json Installed 999999999 object(s) from 999 fixture(s)
  16. Hue データの保全/移行方法 まとめ EMR クラスタはある程度頻繁に再構築する前提で運用する が(多様なコンポーネントの機能追加や改善を取り込みた い)、Hue はそのサイクルに対応する必要がある SNS mixi

    では dumpdata/loaddata を利用してHue デー タ保全/移行を行っている Dumpデータは複数クラスタにLoadできるため、バージョン の異なるクラスタでの動作検証にも活用できる
  17. まとめ:Amazon EMR 上での Hue 運用のポイント 利点 - EMR 上での Hue

    セットアップは容易 適度にチューニング済みの環境がすぐ構築できる 欠点と回避法 - Hue への接続にはいくつか選択肢があるが、利用状況に合わせて適切な方法 を選ぶ(リバースプロキシ経由がおすすめ) - Hue データの保全/移行を考える必要があるが、Hue Shell dumpdata/loaddata を使うとよい ぜひお試しください! &より良い方法あったらご意見ください!