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

Amazon EMR で使う Hue

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

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 を使うとよい ぜひお試しください! &より良い方法あったらご意見ください!