SlideShare a Scribd company logo
1 of 28
データ活用を効率化する
Hadoop WebUIと権限管理改善
事例
株式会社ドワンゴ
基盤開発本部
木浦 正博
自己紹介
• 木浦正博, Masahiro Kiura
• 株式会社ドワンゴ/基盤開発本部
• ソフトウェアエンジニア
• 2015年01月入社
• I ❤️
• 分散システム
• パラメータチューニング
• Linux
• Python
• Splatoon
DWANGO Co., Ltd. all rights reserved. 2
会社紹介
株式会社ドワンゴ
• カドカワグループ
• ニコニコ動画、ニコニコ生放送を
はじめとするニコニコ事業を展開
• N高等学校 2016年04月開校
• 闘会議2017開催
DWANGO Co., Ltd. all rights reserved. 3
項目 データ
登録者数 約5,755万人
プレミアム会員数※ 約256万人
MAU 約866万人
※プレミアム会員とは?
月額540円にて、専用回線での快適な視聴や、
生放送の優先視聴ほか様々な特典を受けられます
※2016年06月30日時点のデータです
ユーザ数情報
Agenda
データ活用を効率化するHadoop WebUIと権限管理改善事例
• ドワンゴの分析基盤とそのWebUIの紹介
• WebUI/権限管理の課題
• 課題を解決するソリューション
• WebUIと権限管理の移行
• Pig UDFライブラリの移行
• Hue周りのドキュメント作成
• HDFS ACLの導入
• データ閲覧権限管理WebUIの作成
• 移行時のその他の課題
• 移行前後の構成
• 移行により得られたメリット
• まとめ
DWANGO Co., Ltd. all rights reserved. 4
ドワンゴの分析基盤とそのWebUIの紹介
• 利用用途
• 分析(UU, PV, etc..)
• リコメンデーション等
• ワークロード
• Pigが80〜90%
• 残りはSpark, Hive, etc..
• 利用ユーザ(社内)
• 連携システム 5+
• Pigユーザ(人間) 200+
• 技術者 約20%
• 非技術者 約80%
DWANGO Co., Ltd. all rights reserved. 5
2016年11月現在、利用コンポーネントは、
Hive, Hue, Yarn, Oozie, Pig, Spark, etc..
date CM version CDH version
2013/12- N/A 3u0
2014/03- N/A 4.3.0
2015/05- 5.4.1 5.4.1
2016/07- 5.7.1 5.7.1 w/patch
2016/10- 5.8.2 5.8.2
CDHアップデート情報
日中帯に基盤のリソースの多くを
Pigユーザ(人間)が
WebUIを通じて利用している
ドワンゴの分析基盤とそのWebUIの紹介
• WebUIの概要
• 2014年頃から運用、自社開発
• ブラウザを通じて、ユーザがPig/MRを実行
• WebUIの機能
• ローカル/HDFSのディレクトリ操作機能
• Pig/MRの即時/予約実行機能, 実行ログ閲覧機能
• Pigスクリプト編集・文法チェック機能
• クラスタのワークロード表示機能
• 管理者機能
ユーザのHDFS上のデータ閲覧権限管理機能
DWANGO Co., Ltd. all rights reserved. 6
ドワンゴの分析基盤とそのWebUIの紹介
ローカル/HDFSのディレクトリ操作機能
DWANGO Co., Ltd. all rights reserved. 7
WebFrontのローカルファイルシステム HDFS
WebFrontのローカルファイル
システムにアップロードした
実行ファイルで、
対象のデータを読み込み、
HDFSに結果を出力する
ドワンゴの分析基盤とそのWebUIの紹介
Pig/MRの即時/予約実行機能, 実行ログ閲覧機能
DWANGO Co., Ltd. all rights reserved. 8
実行ログ閲覧機能
Pig/MRの即時/予約実行
ドワンゴの分析基盤とそのWebUIの紹介
Pigスクリプト編集・文法チェック機能
DWANGO Co., Ltd. all rights reserved. 9
ソースコードエディタ
文法チェック結果表示
ドワンゴの分析基盤とそのWebUIの紹介
クラスタのワークロード表示機能
DWANGO Co., Ltd. all rights reserved. 10
ドワンゴの分析基盤とそのWebUIの紹介
DWANGO Co., Ltd. all rights reserved. 11
利用ユーザのHDFS上のデータ閲覧権限管理機能
• 各ユーザがアクセスできるデータの権限を管理
• Hadoopの標準的な権限管理ではなく、完全な独自実装
• 詳細については割愛
WebUI/権限管理の課題
• ユーザ側の要望
• Pig/MR以外を実行したい
• 実行完了通知がほしい
• より直感的なUIを利用したい
• etc..
DWANGO Co., Ltd. all rights reserved. 12
• 管理者側の課題
メンテナンス性が低くなってしまったコード
ベースのため、
• Bug Fixを入れる保守コストが高い
• 新しいHadoopコンポーネントを
提供するにも開発コストが高い
• 業務フロー変更による、WebUIの
変更コストが高い
• Hadoopの標準的な権限管理を
取り入るための開発コストが高い
新機能提供や改善を
行ってほしい
開発/運用/保守
何をするにもコスト大
課題を解決するソリューション
• HueのFit&Gapを実施
• Hue+データ閲覧権限管理WebUIにより解決できる
• Pig/MRなどの実行はCDHのHueを利用
• データ閲覧権限の申請・承認等はWebUIを新規開発
• 同時に、独自の権限管理からHDFS ACLへ移行
DWANGO Co., Ltd. all rights reserved. 13
WebUIと権限管理の移行
• Pig UDFの移行
• ユーザはWebFrontのローカルファイルシステム上のUDFを利用していた
• ローカルファイルシステムへの依存をなくし、
Hueへの移行をスムーズに
• HDFS上にローカルファイルシステム同様のUDFを準備
• ユーザへUDFの変更依頼をアナウンス
DWANGO Co., Ltd. all rights reserved. 14
例:
REGISTER ‘/path/to/datafu.jar’;
↓
REGISTER ‘/path/to/hdfs/datafu.jar’;
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. 15
WebUIと権限管理の移行
• HDFS ACLの導入
• HDFS ACLとは?
• POSIXベースのPermissionだけではなく
POSIXベースのACLを用いてHDFSのアクセス制御を
柔軟に行うための仕組み
DWANGO Co., Ltd. all rights reserved. 16
$ hdfs dfs -getfacl /path/to/dir_or_file
# file: /path/to/dir_or_file
# owner: hadoop
# group: supergroup
user::rwx
user:user1:r-x
user:user2:rwx
group::r-x
mask::r-x
other::---
←user1は読み取り権限あり
←user2は読み書き権限あり
WebUIと権限管理の移行
• HDFS ACLの導入
• HDFS ACLとは?
• POSIXベースのPermissionだけではなく
POSIXベースのACLを用いてHDFSのアクセス制御を
柔軟に行うための仕組み
DWANGO Co., Ltd. all rights reserved. 17
$ 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: supergroup
user::rwx
user:user1:rwx
user:user2:rwx
group::r-x
mask::r-x
other::---
←user1は読み書き権限あり
←user2は読み書き権限あり
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. 18
$ 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.
WebUIと権限管理の移行
• HDFS ACLの導入
• ユーザ毎に参加するグループを変え、
グループのACLをHDFSディレクトリにかける
• NNのOSユーザ・グループを増やし続けた場合、
該当するHDFSディレクトリの読み書き性能が低下する
DWANGO Co., Ltd. all rights reserved. 19
ユーザ1 グループ1(HDFSディレクトリ1を参照可能)
ユーザ2 グループ2(HDFSディレクトリ2を参照可能)
ユーザ3 グループ3(HDFSディレクトリ3を参照可能)
… …
グループ所属関係
WebUIと権限管理の移行
• HDFS ACLの導入
• HadoopでのGroupの管理
• ShellBasedUnixGroupsMapping
OSユーザ・グループの関係により、
HDFSユーザ・グループの関係を管理
• LdapGroupsMapping
LDAP上のユーザ・グループの関係により、
HDFSユーザ・グループの関係を管理
DWANGO Co., Ltd. all rights reserved. 20
HA Proxy/LDAPを導入しユーザ・グループの紐付けを管理して解決👍
WebUIと権限管理の移行
• データ閲覧権限管理WebUIの作成
• WebUI自体の以下の情報はMySQLで管理
• ユーザ情報
• 権限申請情報
• etc..
• WebUIが管理するLdapGroupsMappingの情報はLDAPで管理
• ユーザ情報
• グループ情報
• ユーザ・グループの紐付け情報
DWANGO Co., Ltd. all rights reserved. 21
WebUIと権限管理の移行
• 移行時のその他の課題
• HUE-3822/HUE-4061/HUE-3821
Hue上からPigの実行中/実行完了後にPig実行ログが閲覧できない問題
• HUE-4113
Pig appへのアクセス権のみを持つHueユーザが
Hueページにアクセスできない問題
DWANGO Co., Ltd. all rights reserved. 22
どちらの課題もCDH5.7.1で発生していましたが、
Clouderaよりパッチを提供いただき短期間で解消しました🎉
WebUIと権限管理の移行
• 移行前後の構成
DWANGO Co., Ltd. all rights reserved. 23
旧WebUI
ユーザ
移行前
NN/RM/Zk/etc..
DN/NM DN/NM DN/NM
Hadoopクラスタ
…
WebUIと権限管理の移行
• 移行前後の構成
DWANGO Co., Ltd. all rights reserved. 24
Hue
ユーザ
権限管理WebUI
HAProxy/LDAP
移行後
NN/RM/Zk/etc..
DN/NM DN/NM DN/NM
Hadoopクラスタ
…
移行により得られたメリット
• Hadoop周りのWebUI開発・保守コストはほぼ0
• Hueに移行したため、この部分の開発・保守コストがほぼ0
• 運用コストも、ユーザからのQA対応とそれに伴う調査のみ
• Hueは、CDHのアップグレードにより新機能・Bug Fixを提供できる
• 権限管理周りのWebUIのコストが主
• Hueを通じてSparkを5人日以下の工数で提供
• 旧WebUIの場合、1人月以上かかった開発
• Hueでは5人日以下の稼働で提供
• 内訳は、動作確認とドキュメント作成
DWANGO Co., Ltd. all rights reserved. 25
まとめ
• 自社開発のWebUIと権限管理の紹介
• 上記により発生した課題とそのソリューション
• ユーザ/管理者両者の課題
• HueとHDFS ACLを用いた権限管理WebUIの移行
• HDFS ACLの導入ポイント
• 権限管理WebUIの作成
• 移行によって得られたメリット
• Hadoop WebUI周りのコスト削減
• 新機能の早期提供
DWANGO Co., Ltd. all rights reserved. 26
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.
DWANGO Co., Ltd. all rights reserved. 27
We’re hiring !
ドワンゴでは、Hadoop環境をよりモダンに
変えることができるエンジニアを募集しています!

More Related Content

What's hot

C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
C5.2 (Cloudera Manager + CDH) アップデート #cwt2014C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
C5.2 (Cloudera Manager + CDH) アップデート #cwt2014Cloudera Japan
 
Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016Cloudera Japan
 
マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014
マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014
マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014Cloudera Japan
 
HBase活用事例 #hbase_ca
HBase活用事例 #hbase_caHBase活用事例 #hbase_ca
HBase活用事例 #hbase_caCloudera Japan
 
サイバーエージェントにおけるデータの品質管理について #cwt2016
サイバーエージェントにおけるデータの品質管理について #cwt2016サイバーエージェントにおけるデータの品質管理について #cwt2016
サイバーエージェントにおけるデータの品質管理について #cwt2016cyberagent
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたものcyberagent
 
CDH5最新情報 #cwt2013
CDH5最新情報 #cwt2013CDH5最新情報 #cwt2013
CDH5最新情報 #cwt2013Cloudera Japan
 
CDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCloudera Japan
 
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015Hadoopビッグデータ基盤の歴史を振り返る #cwt2015
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015Cloudera Japan
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Cloudera Japan
 
Presto on YARNの導入・運用
Presto on YARNの導入・運用Presto on YARNの導入・運用
Presto on YARNの導入・運用cyberagent
 
HBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejpHBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejpCloudera Japan
 
HDFS HA セミナー #hadoop
HDFS HA セミナー #hadoopHDFS HA セミナー #hadoop
HDFS HA セミナー #hadoopCloudera Japan
 
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadedaCloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadedaCloudera Japan
 
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017Cloudera Japan
 
Cloudera HBase training and certification
Cloudera HBase training and certificationCloudera HBase training and certification
Cloudera HBase training and certificationCloudera Japan
 
Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Cloudera Japan
 
内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用cyberagent
 
DB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works ApplicationsDB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works Applications2t3
 
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化Takahiro Moteki
 

What's hot (20)

C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
C5.2 (Cloudera Manager + CDH) アップデート #cwt2014C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
 
Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016Cloud Native Hadoop #cwt2016
Cloud Native Hadoop #cwt2016
 
マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014
マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014
マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014
 
HBase活用事例 #hbase_ca
HBase活用事例 #hbase_caHBase活用事例 #hbase_ca
HBase活用事例 #hbase_ca
 
サイバーエージェントにおけるデータの品質管理について #cwt2016
サイバーエージェントにおけるデータの品質管理について #cwt2016サイバーエージェントにおけるデータの品質管理について #cwt2016
サイバーエージェントにおけるデータの品質管理について #cwt2016
 
最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの最新版Hadoopクラスタを運用して得られたもの
最新版Hadoopクラスタを運用して得られたもの
 
CDH5最新情報 #cwt2013
CDH5最新情報 #cwt2013CDH5最新情報 #cwt2013
CDH5最新情報 #cwt2013
 
CDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokuben
 
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015Hadoopビッグデータ基盤の歴史を振り返る #cwt2015
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
 
Presto on YARNの導入・運用
Presto on YARNの導入・運用Presto on YARNの導入・運用
Presto on YARNの導入・運用
 
HBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejpHBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejp
 
HDFS HA セミナー #hadoop
HDFS HA セミナー #hadoopHDFS HA セミナー #hadoop
HDFS HA セミナー #hadoop
 
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadedaCloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
 
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
 
Cloudera HBase training and certification
Cloudera HBase training and certificationCloudera HBase training and certification
Cloudera HBase training and certification
 
Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側Apache Kuduを使った分析システムの裏側
Apache Kuduを使った分析システムの裏側
 
内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用
 
DB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works ApplicationsDB Tech showcase Tokyo 2015 Works Applications
DB Tech showcase Tokyo 2015 Works Applications
 
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
[CWT2017]Infrastructure as Codeを活用したF.O.Xのクラウドビッグデータ環境の変化
 

Viewers also liked

Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたHive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたRecruit Technologies
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!Nagato Kasaki
 
Docker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライドDocker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライドShiojiri Ohhara
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルMasahito Zembutsu
 

Viewers also liked (6)

Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみたHive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
 
第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)
第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)
第37回「Dockerのユースケースと将来」(2014/10/30 on しすなま!)
 
Docker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライドDocker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライド
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 

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

サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)NTT DATA OSS Professional Services
 
Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)
Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)
Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)オラクルエンジニア通信
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!KLab株式会社
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムSatoshi Iijima
 
Beginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopBeginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopDataWorks Summit
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組みNTT DATA OSS Professional Services
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1近藤 繁延
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~Toru Miki
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化Nobuyori Takahashi
 
Hueによる分析業務の改善事例
Hueによる分析業務の改善事例Hueによる分析業務の改善事例
Hueによる分析業務の改善事例Masahiro Kiura
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティHiroshi Tokumaru
 
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューションオープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューションTetsurou Yano
 
Hadoop and Kerberos
Hadoop and KerberosHadoop and Kerberos
Hadoop and KerberosYuta Imai
 

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

Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreadingApache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
 
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
 
Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)
Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)
Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システム
 
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
 
Beginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopBeginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning Hadoop
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
WordPress サイト制作におけるデプロイメントを考える ~Git とデプロイメントサービスの活用~
 
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
Hueによる分析業務の改善事例
Hueによる分析業務の改善事例Hueによる分析業務の改善事例
Hueによる分析業務の改善事例
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
 
Hadoop基盤を知る
Hadoop基盤を知るHadoop基盤を知る
Hadoop基盤を知る
 
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューションオープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
オープンソースカンファレンス OSC 2014 エンタープライズ 東京 ownCloud 法人向けオンラインストレージ マルチデバイスファイル共有ソリューション
 
Hadoop and Kerberos
Hadoop and KerberosHadoop and Kerberos
Hadoop and Kerberos
 

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

Editor's Notes

  1. 株式会社ドワンゴ、ご存知の通り、角川グループです。 ニコニコ動画、ニコニコ生放送を中心とするサービスを展開しています。 登録者数、約5,755万人、有料プランを利用するプレミアム会員数、約256万人になっています。 その他にも、通信制高等学校としてN高等学校をこの4月に開校しましたし、ゲームの祭典、闘会議2017が開催予定です。
  2. まず、ドワンゴの分析基盤と、これまでのWebUIについてご紹介します。 次に、紹介したWebUIと権限管理のやり方の課題について説明します。 そして、Hadoop WebUIと権限管理の移行について説明します。 最後に、この移行により実現できたメリットの一部をご紹介させていただきます。
  3. まず、ドワンゴの分析基盤のご紹介です。 利用用途は、分析、リコメンデーション等、 ワークロードは、Pigによるスクリプティングがほとんどです。 利用しているCDHは、現在5.8.2となっています。 年1回のCDHアップグレードから、年2回以上行うようになり、 アップグレード関連作業の定常化、効率化を進めています。 次に、この分析基盤の利用ユーザですが、 連携するシステムが大小含めて5つ程度 Pigユーザは、200人以上となっています。 今回の発表のメインは、この200人以上のPigユーザが利用するWebUIについてです。
  4. さて、このWebUIですが、2014年頃から、2.5年程度運用してきました。 自社開発のコード量数万行レベルのWebアプリケーションです。 後ほどご紹介しますが、WebUIの機能として、、、
  5. まずは、ローカル/HDFSのディレクトリ操作機能についてです。 例えば、Hueなどと比較して、自社開発のWebUIが異なる点として、 WebFrontのローカルファイルシステムの操作ができる点です。 左側から自社開発のWebUIから、 ある分析ユーザのWebFrontのホームディレクトリと HDFS上のホームディレクトリのブラウザ画面です。 分析ユーザは、WebFrontのローカルファイルシステムに実行ファイルをアップロードし、 HDFS上のログデータを読み込み、HDFS上に結果を出力するという形でした。
  6. 次に、Pig/MRの即時/予約実行機能, 実行ログ閲覧機能です。 分析ユーザは、先ほどのWebFrontのローカルファイルシステムにアップロードした実行ファイルを選択し、 引数パラメータ、実行時間などを設定して実行します。 実行ログは画面下部に表示されます。
  7. 次に、Pigスクリプト編集・文法チェック機能です。 この機能は、分析ユーザが、Pig実行前にPigの文法チェックを行うために開発されました。 ソースコードエディタに、Pigスクリプトをコピペして、Testボタンを押下すると、文法チェック結果が画面下部に表示されます。
  8. 次にクラスタのワークロード表示機能です。 HueのJobbrowserやCloudera managerのYarnアプリケーション一覧に対応します。 分析ユーザが、自身が実行したPig等の実行進捗が閲覧できる簡易画面です。
  9. 続いて、HDFS上のデータ閲覧権限管理機能です。 詳細についてはご紹介できないのですが、ドワンゴの分析基盤では、 ユーザが閲覧できるデータを制御しています。 HDFSの閲覧制御といえば、HDFS ACLがありますが、 これまでのWebUIで利用してきた権限管理は完全な独自実装です。
  10. ここまで、ドワンゴの分析基盤と、 そのWebUI/HDFS上のデータ閲覧権限について簡単にご紹介しました。 ご紹介したような機能を実現する一方で、 分析ユーザ視点、管理者視点で、いくつかの要望や課題がありました。 ユーザ側の要望として、、、
  11. 課題を解決するソリューションとして、いくつかのFit&Gapの結果、Hueを選択することにしました。 理由としては、 ・Hueが既存のWebUIの機能をほとんど備えていること Pigの文法チェック機能はHueにはないですが、それでも十分前述の課題を解決し得るという判断です。
  12. まず、Pig UDFの移行についてです。 要点だけを説明しますと、既存のWebUIの場合、WebFrontの ローカルファイルシステム上に配置されていたPig UDFをHDFS上に移行した ということになります。 単純に考えると、hdfs dfs –moveFromLocalでいいんじゃないのかと思われる方もおられるかもわかりませんが、 毎日定常的に、何十人、何百人のPigユーザが利用するライブラリ群の場所が移動しただけで、 Pigスクリプトの書き換え忘れによりPigジョブがエラーになるケースもあります。 ちなみに、このタスクの場合、UDF配置場所の平行運用期間が2、3ヶ月程度でした。
  13. 次にドキュメントの整備です。 冒頭でお話したとおり、Pigユーザの約80%が非技術者です。 ClouderaやApache Software Fooundationの英語ドキュメントだけでは、 弊社の分析ユーザに対応しきれないため、日本語ドキュメントを整備しました。 内容としては、ここに挙げていますように、 ・Query Editor ・etc…
  14. 続いて、HDFS ACLの導入についてご紹介したいと思います。 まず、HDFS ACLとは何か?という部分なんですが、 HDFS上のデータに対して、HDFS Permissionとは別にユーザやグループ毎に閲覧権限を管理するものになります。 では、どのように、HDFS ACLの参照や変更を行うのかと申しますと、 ここに記載しています通り、 hdfsコマンドのgetfaclにより特定ディレクトリのACLエントリが表示されます。 user1は、このディレクトリに対して、読み込み権限を持っており、 user2は、このディレクトリに対して、読み書き権限を持っているということがわかるかと思います。
  15. 次にACLの追加・変更ですが、この場合には、hdfsコマンドのsetfaclオプションで実施することができます。 先ほど、user1は、このディレクトリに対して、読み込み権限のみしか付与されていませんでしたが、 setfaclオプションにより、書き込み権限が追加されていることがわかるかと思います。 このHDFSの機能を利用すれば、 分析ユーザのHDFSデータ閲覧権限が制御できそうであるということがわかりますが、 何点か問題がありました。
  16. 200人以上の分析ユーザについて、ACLエントリーを追加しようとした場合に、 33人目でエラーが発生しました。 HDFSの仕様として、ACLエントリーは、32個までという制限があります。
  17. この解決方法として、OSグループの追加という対応を実施しました。 各HDFSディレクトリを参照可能なOSグループを用意し、 各グループに所属すれば、該当するHDFSディレクトリを参照することができるという内容です。 しかし、この方法だけでも問題が発生しました。 NNのOSユーザ・グループを増やし続けると、HDFS上の読み込み・書き込み時間が長くなるという状況です。
  18. コードベースが、1/3以下に