28
デデデデデデデデデデデ Hadoop WebUI デデデデデデデデデ 株株株株株株株株 株株株株株株 株株 株株

データ活用を効率化するHadoop WebUIと権限管理改善事例

Embed Size (px)

Citation preview

Page 1: データ活用を効率化するHadoop WebUIと権限管理改善事例

データ活用を効率化するHadoop WebUI と権限管理改善事例

株式会社ドワンゴ基盤開発本部

木浦 正博

Page 2: データ活用を効率化するHadoop WebUIと権限管理改善事例

自己紹介• 木浦正博 , Masahiro Kiura• 株式会社ドワンゴ / 基盤開発本部• ソフトウェアエンジニア• 2015 年 01 月入社

• I ❤ • 分散システム• パラメータチューニング• Linux• Python• Splatoon

DWANGO Co., Ltd. all rights reserved. 2

Page 3: データ活用を効率化するHadoop WebUIと権限管理改善事例

会社紹介株式会社ドワンゴ• カドカワグループ• ニコニコ動画、ニコニコ生放送を

はじめとするニコニコ事業を展開• N 高等学校 2016 年 04 月開校• 闘会議 2017 開催

DWANGO Co., Ltd. all rights reserved. 3

項目 データ

登録者数 約 5,755 万人

プレミアム会員数※ 約 256 万人

MAU 約 866 万人※ プレミアム会員とは ? 月額 540 円にて、専用回線での快適な視聴や、 生放送の優先視聴ほか様々な特典を受けられます※2016 年 06 月 30 日時点のデータです

ユーザ数情報

Page 4: データ活用を効率化するHadoop WebUIと権限管理改善事例

Agendaデータ活用を効率化する Hadoop WebUI と権限管理改善事例• ドワンゴの分析基盤とその WebUI の紹介• WebUI/ 権限管理の課題• 課題を解決するソリューション• WebUI と権限管理の移行• Pig UDF ライブラリの移行• Hue 周りのドキュメント作成• HDFS ACL の導入• データ閲覧権限管理 WebUI の作成• 移行時のその他の課題• 移行前後の構成

• 移行により得られたメリット• まとめ

DWANGO Co., Ltd. all rights reserved. 4

Page 5: データ活用を効率化するHadoop WebUIと権限管理改善事例

5

ドワンゴの分析基盤とその WebUI の紹介• 利用用途• 分析 (UU, PV, etc..)• リコメンデーション等

• ワークロード• Pig が 80 〜 90%• 残りは Spark, Hive, etc..

• 利用ユーザ ( 社内 )• 連携システム  5+• Pig ユーザ ( 人間 )   200+• 技術者 約 20%• 非技術者 約 80%

DWANGO Co., Ltd. all rights reserved.

2016 年 11 月現在、利用コンポーネントは、Hive, Hue, Yarn, Oozie, Pig, Spark, etc..

date CM version CDH version2013/12- N/A 3u02014/03- N/A 4.3.02015/05- 5.4.1 5.4.12016/07- 5.7.1 5.7.1 w/patch2016/10- 5.8.2 5.8.2

CDH アップデート情報

日中帯に基盤のリソースの多くをPig ユーザ ( 人間 ) がWebUI を通じて利用している

Page 6: データ活用を効率化するHadoop WebUIと権限管理改善事例

ドワンゴの分析基盤とその WebUI の紹介

• WebUI の概要• 2014 年頃から運用、自社開発• ブラウザを通じて、ユーザが Pig/MR を実行

• WebUI の機能• ローカル /HDFS のディレクトリ操作機能• Pig/MR の即時 / 予約実行機能 , 実行ログ閲覧機能• Pig スクリプト編集・文法チェック機能• クラスタのワークロード表示機能• 管理者機能

ユーザの HDFS 上のデータ閲覧権限管理機能

DWANGO Co., Ltd. all rights reserved. 6

Page 7: データ活用を効率化するHadoop WebUIと権限管理改善事例

ドワンゴの分析基盤とその WebUI の紹介

ローカル /HDFS のディレクトリ操作機能

DWANGO Co., Ltd. all rights reserved. 7

WebFront のローカルファイルシステム HDFS

WebFront のローカルファイルシステムにアップロードした実行ファイルで、対象のデータを読み込み、HDFS に結果を出力する

Page 8: データ活用を効率化するHadoop WebUIと権限管理改善事例

ドワンゴの分析基盤とその WebUI の紹介

Pig/MR の即時 / 予約実行機能 , 実行ログ閲覧機能

DWANGO Co., Ltd. all rights reserved. 8

実行ログ閲覧機能

Pig/MR の即時 / 予約実行

Page 9: データ活用を効率化するHadoop WebUIと権限管理改善事例

ドワンゴの分析基盤とその WebUI の紹介

Pig スクリプト編集・文法チェック機能

DWANGO Co., Ltd. all rights reserved. 9

ソースコードエディタ

文法チェック結果表示

Page 10: データ活用を効率化するHadoop WebUIと権限管理改善事例

ドワンゴの分析基盤とその WebUI の紹介

クラスタのワークロード表示機能

DWANGO Co., Ltd. all rights reserved. 10

Page 11: データ活用を効率化するHadoop WebUIと権限管理改善事例

ドワンゴの分析基盤とその WebUI の紹介

DWANGO Co., Ltd. all rights reserved. 11

利用ユーザの HDFS 上のデータ閲覧権限管理機能• 各ユーザがアクセスできるデータの権限を管理• Hadoop の標準的な権限管理ではなく、完全な独自実装• 詳細については割愛

Page 12: データ活用を効率化するHadoop WebUIと権限管理改善事例

12

WebUI/ 権限管理の課題• ユーザ側の要望• Pig/MR 以外を実行したい• 実行完了通知がほしい• より直感的な UI を利用したい• etc..

DWANGO Co., Ltd. all rights reserved.

• 管理者側の課題メンテナンス性が低くなってしまったコードベースのため、• Bug Fix を入れる保守コストが高い• 新しい Hadoop コンポーネントを

提供するにも開発コストが高い• 業務フロー変更による、 WebUI の変更コストが高い• Hadoop の標準的な権限管理を取り入るための開発コストが高い

新機能提供や改善を行ってほしい

開発 / 運用 / 保守何をするにもコスト大

Page 13: データ活用を効率化するHadoop WebUIと権限管理改善事例

13

課題を解決するソリューション• Hue の Fit&Gap を実施• Hue+ データ閲覧権限管理 WebUI により解決できる• Pig/MR などの実行は CDH の Hue を利用• データ閲覧権限の申請・承認等は WebUI を新規開発• 同時に、独自の権限管理から HDFS ACLへ移行

DWANGO Co., Ltd. all rights reserved.

Page 14: データ活用を効率化するHadoop WebUIと権限管理改善事例

14

WebUI と権限管理の移行• Pig UDF の移行• ユーザは WebFront のローカルファイルシステム上の UDF を利用してい

た• ローカルファイルシステムへの依存をなくし、

Hueへの移行をスムーズに• HDFS 上にローカルファイルシステム同様の UDF を準備• ユーザへ UDF の変更依頼をアナウンス

DWANGO Co., Ltd. all rights reserved.

例 :  REGISTER ‘/path/to/datafu.jar’; ↓  REGISTER ‘/path/to/hdfs/datafu.jar’;

Page 15: データ活用を効率化するHadoop WebUIと権限管理改善事例

15

WebUI と権限管理の移行• Hue 周りのドキュメント作成• ユーザは非技術者がほとんど• Cloudera や Apache Software Foundation の英語ドキュメントだけでは対応できない• Hue から以下を利用する方法について日本語で解説• Query Editor• Oozie Workflow/Coodinator/Bundle• File Browser• Job Browser• その他 (FAQ, トラブルシューティング , etc..)

DWANGO Co., Ltd. all rights reserved.

Page 16: データ活用を効率化するHadoop WebUIと権限管理改善事例

16

WebUI と権限管理の移行• HDFS ACL の導入• HDFS ACL とは ?• POSIX ベースの Permissionだけではなく

POSIX ベースの ACL を用いて HDFS のアクセス制御を柔軟に行うための仕組み

DWANGO Co., Ltd. all rights reserved.

$ hdfs dfs -getfacl /path/to/dir_or_file# file: /path/to/dir_or_file# owner: hadoop# group: supergroupuser::rwxuser:user1:r-xuser:user2:rwxgroup::r-xmask::r-xother::---

←user1 は読み取り権限あり←user2 は読み書き権限あり

Page 17: データ活用を効率化するHadoop WebUIと権限管理改善事例

17

WebUI と権限管理の移行• HDFS ACL の導入• HDFS ACL とは ?• POSIX ベースの Permissionだけではなく

POSIX ベースの ACL を用いて HDFS のアクセス制御を柔軟に行うための仕組み

DWANGO Co., Ltd. all rights reserved.

$ hdfs dfs -setfacl -m user:user1:rwx /path/to/dir_or_file$ hdfs dfs -getfacl /path/to/dir_or_file# file: /path/to/dir_or_file# owner: hadoop# group: supergroupuser::rwxuser:user1:rwxuser:user2:rwxgroup::r-xmask::r-xother::---

←user1 は読み書き権限あり←user2 は読み書き権限あり

Page 18: データ活用を効率化するHadoop WebUIと権限管理改善事例

18

WebUI と権限管理の移行• HDFS ACL の導入• 1 つの HDFS ディレクトリに対して

200+ のユーザの ACL エントリーを追加

• HDFS の仕様として、 ACL エントリーは 32 まで😢https://issues.apache.org/jira/secure/attachment/12627729/HDFS-ACLs-Design-3.pdf

DWANGO Co., Ltd. all rights reserved.

$ hdfs dfs -setfacl -m user:user1:rwx /path/to/dir_or_file $ hdfs dfs -setfacl -m user:user2:rwx /path/to/dir_or_file$ …$ hdfs dfs -setfacl -m user:user33:rwx /path/to/dir_or_file Error setfacl: Invalid ACL: ACL has 33 entries, which exceeds maximum of 32.

Page 19: データ活用を効率化するHadoop WebUIと権限管理改善事例

19

WebUI と権限管理の移行• HDFS ACL の導入• ユーザ毎に参加するグループを変え、

グループの ACL を HDFS ディレクトリにかける

• NN の OS ユーザ・グループを増やし続けた場合、該当する HDFS ディレクトリの読み書き性能が低下する

DWANGO Co., Ltd. all rights reserved.

ユーザ 1 グループ 1(HDFS ディレクトリ 1 を参照可能 )

ユーザ 2 グループ 2(HDFS ディレクトリ 2 を参照可能 )

ユーザ 3 グループ 3(HDFS ディレクトリ 3 を参照可能 )

… …

グループ所属関係

Page 20: データ活用を効率化するHadoop WebUIと権限管理改善事例

20

WebUI と権限管理の移行• HDFS ACL の導入• Hadoop での Group の管理• ShellBasedUnixGroupsMapping

OS ユーザ・グループの関係により、HDFS ユーザ・グループの関係を管理• LdapGroupsMapping

LDAP 上のユーザ・グループの関係により、HDFS ユーザ・グループの関係を管理

DWANGO Co., Ltd. all rights reserved.

HA Proxy/LDAP を導入しユーザ・グループの紐付けを管理して解決👍

Page 21: データ活用を効率化するHadoop WebUIと権限管理改善事例

21

WebUI と権限管理の移行• データ閲覧権限管理 WebUI の作成• WebUI 自体の以下の情報は MySQL で管理• ユーザ情報• 権限申請情報• etc..

• WebUI が管理する LdapGroupsMapping の情報は LDAP で管理• ユーザ情報• グループ情報• ユーザ・グループの紐付け情報

DWANGO Co., Ltd. all rights reserved.

Page 22: データ活用を効率化するHadoop WebUIと権限管理改善事例

22

WebUI と権限管理の移行• 移行時のその他の課題• HUE-3822/HUE-4061/HUE-3821

Hue 上から Pig の実行中 / 実行完了後に Pig 実行ログが閲覧できない問題• HUE-4113

Pig appへのアクセス権のみを持つ Hue ユーザがHueページにアクセスできない問題

DWANGO Co., Ltd. all rights reserved.

どちらの課題も CDH5.7.1 で発生していましたが、Cloudera よりパッチを提供いただき短期間で解消しました

 🎉

Page 23: データ活用を効率化するHadoop WebUIと権限管理改善事例

23

WebUI と権限管理の移行• 移行前後の構成

DWANGO Co., Ltd. all rights reserved.

旧WebUI

ユーザ

移行前 NN/RM/Zk/etc..

DN/NM DN/NM DN/NM

Hadoop クラスタ

Page 24: データ活用を効率化するHadoop WebUIと権限管理改善事例

24

WebUI と権限管理の移行• 移行前後の構成

DWANGO Co., Ltd. all rights reserved.

Hue

ユーザ

権限管理 WebUI

HAProxy/LDAP

移行後

NN/RM/Zk/etc..

DN/NM DN/NM DN/NM

Hadoop クラスタ

Page 25: データ活用を効率化するHadoop WebUIと権限管理改善事例

25

移行により得られたメリット• Hadoop 周りの WebUI 開発・保守コストはほぼ 0• Hue に移行したため、この部分の開発・保守コストがほぼ 0• 運用コストも、ユーザからの QA 対応とそれに伴う調査のみ• Hue は、 CDH のアップグレードにより新機能・ Bug Fix を提供できる• 権限管理周りの WebUI のコストが主

• Hue を通じて Spark を 5 人日以下の工数で提供• 旧WebUI の場合、 1 人月以上かかった開発• Hue では 5 人日以下の稼働で提供• 内訳は、動作確認とドキュメント作成

DWANGO Co., Ltd. all rights reserved.

Page 26: データ活用を効率化するHadoop WebUIと権限管理改善事例

26

まとめ• 自社開発の WebUI と権限管理の紹介• 上記により発生した課題とそのソリューション• ユーザ / 管理者両者の課題

• Hue と HDFS ACL を用いた権限管理 WebUI の移行• HDFS ACL の導入ポイント• 権限管理 WebUI の作成

• 移行によって得られたメリット• Hadoop WebUI 周りのコスト削減• 新機能の早期提供

DWANGO Co., Ltd. all rights reserved.

Splatoon は任天堂の商標です。 Hadoop, Hive, Pig, Spark and Oozie are either registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries. Cloudera and Hue are trademarks of Cloudera, Inc. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries. Python is a registered trademark of the PSF. 

Page 27: データ活用を効率化するHadoop WebUIと権限管理改善事例

27DWANGO Co., Ltd. all rights reserved.

Page 28: データ活用を効率化するHadoop WebUIと権限管理改善事例

We’re hiring !ドワンゴでは、 Hadoop環境をよりモダンに変えることができるエンジニアを募集していま

す !