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

Amazon EMR利用者がCloudera Altusを使ってみた感想

s_wool
November 07, 2017

Amazon EMR利用者がCloudera Altusを使ってみた感想

Cloudera World Tokyo 2017の発表資料です。
なお、こちらは2017年10月末時点の情報となりますので、その後変わっていることもありますのであらかじめご了承ください。
また、14ページ目にて訂正があるので合わせてご確認ください!

s_wool

November 07, 2017
Tweet

More Decks by s_wool

Other Decks in Technology

Transcript

  1. Copyright© Gunosy Inc. All Rights Reserved 2 ⾃⼰紹介 加藤慶⼀(カトウノリカズ) twitter:

    @s_wool 株式会社Gunosy 開発本部 広告技術部 主な業務: アドサーバー周りのデータフローや バッチ処理などをうまいことやってます 私とCloudera: 前職にてCDH 4からCDH 5にアップグレードしたり、 Cloudera ManagerでPrestoを動かすParcelとか作ったりしました。 https://qiita.com/s_wool/items/4fa7932dda7e3f473815 https://qiita.com/s_wool/items/1b42e457ee54d3a0f70a
  2. Copyright© Gunosy Inc. All Rights Reserved 5 広告技術部のプロダクト • Gunosy

    Ads ← 本⽇話すのはこちら • グノシーやニュースパス上に最適化された広告を配信 • Gunosy Network Ads • 参画いただいているメディアの広告枠に広告を配信 • その他管理画⾯など Gunosy Ads Gunosy Network Ads ※お問い合わせはこちら: https://gunosy.co.jp/contact/
  3. Copyright© Gunosy Inc. All Rights Reserved 11 Cloudera Altusについて ざっくりいうと

    • パブリッククラウド上に • Web UIあるいはCLIから • CDHクラスタの作成、ジョブのサブミットができる サービス
  4. Copyright© Gunosy Inc. All Rights Reserved 12 Cloudera Altusのクラスタ構成 4種類のノードからなる構成

    • Cloudera Manager (1台) • Master(1台) • ResourceManager, NameNode, Hive metastore, HiveServer2, Ooozieなど • Worker(最低3台) • NodeManager, DataNode • Compute Worker (0台以上) • NodeManager
  5. Copyright© Gunosy Inc. All Rights Reserved 13 ノードの中をのぞいてみた • OSはCentOSの7.3で、centosユーザーでsshログインできます

    • td-agent がインストールされている! • 設定したs3バケットに/var/log以下の各種ログをtailして転送 • aws-cli 利⽤可能 • 使⽤例:bootstrap scriptでs3に⽤意したライブラリの展開 • bootstrap script:起動時に実⾏されるスクリプト
  6. Copyright© Gunosy Inc. All Rights Reserved 14 Altusでできること • ⾼度なモニタリング

    • Cloudera Managerがインストールされるので詳細なモニタリングが可能 • EMRでは標準でgangliaのインストールは可能 • Gunosyではbootstrap actionでdatadogをインストール • クラスタシャットダウン後にもジョブのログを⾒られる • 特に失敗時に重宝 • YARN/SparkのWebUIを⾒なくても たいていここ⾒て調査できる • ログ検索 • Cloudera Managerからできる • Environment • 特定のSecurity Group/IAM Roleに限定 できる • 設定変更 • 各サービスの再起動 すみません! 勘違いでした!
  7. Copyright© Gunosy Inc. All Rights Reserved 15 Altus移⾏時の注意点1 • Hadoop,

    Hive, Sparkのバージョン差異に注意 • EMR 5.9.0 • Hadoop 2.7.3 • Hive 2.3.0 • Spark 2.2.0 • CDH 5.13 • Hadoop 2.6.0 • Hive 1.1.0 • Spark 2.2.0 • ただし、同じバージョンでもあたっているパッチが違うことがあるので注意
  8. Copyright© Gunosy Inc. All Rights Reserved 16 Altus移⾏時の注意点2 • EMRFSを使っている場合に注意

    • s3://というスキームでアクセスしてる場合、EMRとその他ディストリビュー ションでは実装が異なる • s3a://に変更して動作確認 • EMRFSの整合性のあるビューを使っている⽅ • S3Guardを設定(Environmentに設定可能) • AWS関連のライブラリ • ビルド時に依存関係を整理する • pom.xmlとかbuild.sbtとかClouderaのリポジトリに向き先を変更 • awslabs/emr-dynamodb-connector など使ってる場合、依存するhadoopバー ジョンが合わないといったことがあった
  9. Copyright© Gunosy Inc. All Rights Reserved 17 Altusで(現在)できないこと • apiによる起動、ジョブ追加

    • altuscliのソースコード少し覗いてみると、 https://dataengapi.us-west- 1.altus.cloudera.com とかにリクエストしてるのでAPIはある • Pythonでのbotoみたいなのがあるとよりうれしい • Hive Job -> Spark Job のような複数のJob Typeのグループ化が現状不可 • 裏側Oozieなのでできそうなのになと思う • ついでにJobのfork -> joinまでできるとEMRだけでなくDataPipelineからの移⾏ も検討できる • Hive Metastoreの永続化 • クラスタ起動後のWorker, Compute Workerのサイズ変更 • AutoScalingみたいなことがしたい • Job失敗時などの通知機能 • EMRでのCloudwatch Event • 贅沢を⾔えばメールやSlackなどのチャットへ通知
  10. Copyright© Gunosy Inc. All Rights Reserved 18 Altusへの要望(機能) 前ページに加えて •

    起動時間 • 現状起動から利⽤可能まで20分ほど • EMRも短くはないがおよそ10分 • ⽴てっぱなしの運⽤であればさほど問題ではない • AWSが秒単位課⾦になったのでGunosyではJob毎に起動していた • 動作検証のような使い⽅を安価で実⾏したい • 動作検証の場合、Compute WorkerだけでなくWorkerもSpot Instanceを使いた い(価格⾼騰で落ちたらあきらめるので) • Workload Analyticsで実効時間トレンドから外れた値が出た場合の通知
  11. Copyright© Gunosy Inc. All Rights Reserved 19 Altusへの要望(⾮機能) • Single

    Sign-On対応 • GunosyではAWSへのログインなどでSSO使っているので、ID管理をよせたい • アカウント/請求書分けたい • 各種サービスで使う場合、どのサービスのEnvironmentにいくらかかっているか など分けて管理したい • ⼆段階認証 • SSO対応してれば必要ないが… • altuscliのソースコードをgithubあたりに • 単純に読みたい
  12. Copyright© Gunosy Inc. All Rights Reserved 20 まとめ Gunosy Adsで利⽤しているEMRをAltusに置き換えられないか検討しました

    Altusに移⾏するメリット • Web UIから⾒られるWorkload Analytics • 失敗時に詳細が簡単に⾒られる • 定期Jobでの実⾏時間トレンド • Cloudera Managerによる詳細なメトリクス収集・ログ検索 以下に当てはまる場合は構成の⾒直しが必要か • 秒課⾦+Spot Instanceを利⽤したコスト節約 • 複数Job Typeのフロー