SlideShare a Scribd company logo
1 of 13
Copyright © 2014 NTT DATA Corporation 1 
(株) NTTデータ 基盤システム事業本部 鯵坂 明 
2014/11/6 Cloudera World Tokyo 2014 
OfflineImageViewerの変遷
Copyright © 2014 NTT DATA Corporation 2 
 
NTTデータ OSSプロフェッショナルサービス 
 
Hadoop関連のR&Dやシステム開発に従事 
 
約1年前からHadoop本体の開発に参加 
 
ドキュメント 
 
バグフィックス 
 
運用強化 
 
などなど 
 
OfflineImageViewerの開発者 
 
何か問題があれば、直します 
自己紹介:鯵坂 明 (あじさか あきら)
Copyright © 2014 NTT DATA Corporation 3 
 
HDFSのメタ情報であるfsimageを人間が読める形式に変換す るためのツール 
 
Hadoopクラスタを起動する必要はなく、文字通り「オフライン」 で変換 
 
HDFSの利用状況を分析するのに便利 
OfflineImageViewer(以下、OIV)とは 
HDFSIMG1^Y^H<AC><B3><F5><D7>^A^P<E8>^G^X<C2><90>^L 
^@(<DA><88><8C><80>^D0<A8> 
<AA>L^F^H<EF><A8>^N^PR^B^P<81><80>^A^Z^@*<D9><D3><AF><95><91>)^P<FF><FF><FF><FF><FF><FF><FF><FF>^?^X<FF><FF><FF><FF><FF><FF><FF><FF><FF>^A!< ED>^A^B^@^@^A^@^@^B 
^P<84><80>^A^Z^Ctmp*<8F><F6><E3><E8><87>)^P<FF><FF><FF><FF><FF><FF><FF><FF><FF> 
^A^X<FF><FF><FF><FF><FF><FF><FF><FF><FF>^A!<FF>^A^B^@^@^A^@^@^B^P<92>< 80>^A^Z^Khadoop-yarn*<DA> 
... 
drwxrwxrwx - root supergroup 0 2014-09-16 15:14 /tmp drwx------ - root supergroup 0 2014-09-16 15:14 /tmp/hadoop-yarn drwx------ - root supergroup 0 2014-09-16 15:14 /tmp/hadoop-yarn/staging
Copyright © 2014 NTT DATA Corporation 4 
 
OIVで利用可能なオプション (合計6つ) 
Hadoop 2.3以前 
オプション 
説明 
Ls 
ls形式で出力 
XML 
XML形式で出力 
Indented 
インデントした状態で出力 
Delimited 
任意のdelimiter区切りで出力 
FileDistribution 
ファイルサイズの統計情報を出力 
NameDistribution 
ファイル名・ディレクトリ名の統計情報を出力
Copyright © 2014 NTT DATA Corporation 5 
 
使ってみると、色々とバグが見つかった 
 
helpの出力で、あるべき改行が抜けている 
 
FileDistributionで'-maxSize'と'-step'を指定するとOIVが落ちる(!) 
 
NameDistributionで不要な行が表示される 
 
報告すると、「HDFS-5698 branchがマージされると、今の OIVはDeprecatedになるから待って」と言われた 
言われるがまま、HDFS-5698がマージされるのを待った 
OfflineImageViewerのバグ
Copyright © 2014 NTT DATA Corporation 6 
 
fsimageの形式が変化 (HDFS-5698) 
 
ProtocolBuffersでシリアライズ/デシリアライズ 
 
fsimageのフォーマットを更新するのが非常に簡単になった 
 
OIVも、新しいfsimageを読み込むために再実装された 
Hadoop 2.4で、OIVは大きく変化
Copyright © 2014 NTT DATA Corporation 7 
 
OIVで利用可能なオプション 
 
オプションが6つから3つに減少 
デグレしてる! 
2.4のOfflineImageViewer 
オプション 
説明 
Ls 
ls形式で出力 
XML 
XML形式で出力 
FileDistribution 
ファイルサイズの統計情報を出力
Copyright © 2014 NTT DATA Corporation 8 
 
失った機能を取り戻したい 
 
Indented, Delimitedについて実装しようとしたが、 「Indented/Delimited formatの目的であるfsimageの分析には、 XMLを使ってくれ。コードが重複することは避けたい。」と言われた 
2.5に向けた機能追加(その1)
Copyright © 2014 NTT DATA Corporation 9 
 
機能の追加も提案 (HDFS-5975) 
 
「fsimageが巨大だとLsの結果も大きいから、特定のファイルパスの 情報だけ取り出したい」 という提案をしたところ、 
 
「read only のWebHDFS APIを提供する、jhatのようなツールを作っ てみたらどうか」と、逆に提案された 
2.5に向けた機能追加(その2)
Copyright © 2014 NTT DATA Corporation 10 
 
実装した! (HDFS-5978) 
 
HTTPサーバを起動 
 
WebHDFS APIでアクセス 
 
2.5.0から利用可能 
WebImageViewer 
bash$ bin/hdfs oiv -i fsimage 14/04/07 13:25:14 INFO offlineImageViewer.WebImageViewer: WebImageViewer started. Listening on /127.0.0.1:5978. Press Ctrl+C to stop the viewer. 
bash$ bin/hdfs dfs -ls webhdfs://127.0.0.1:5978/ 
Found 2 items 
drwxrwx--- - root supergroup 0 2014-03-26 20:16 webhdfs://127.0.0.1:5978/tmp 
drwxr-xr-x - root supergroup 0 2014-03-31 14:08 webhdfs://127.0.0.1:5978/user
Copyright © 2014 NTT DATA Corporation 11 
 
fsimageの形式が変わったことで、OIVを動かすのに必要なメ モリが急増 
 
1.4億ファイル/ディレクトリのfsimageだと、80GBあっても足りない 
 
2.3までだと、350MBで足りた 
メモリ使用量の削減案はあったが、1GBのヒープで動かすた めのアイデアが浮かばず 
最終的に、 
2.3までのOIVを、oiv_legacyコマンドとして復活 (HDFS-6293) 
NameNode(standby) or SecondaryNameNodeで旧形式の fsimageをdumpさせるためのオプションを追加 
-"dfs.namenode.legacy-oiv-image.dir" 
2.5に向けた機能追加(その3)
Copyright © 2014 NTT DATA Corporation 12 
 
メモリ使用量の削減 (HDFS-7158) 
 
巨大なfsimageを読むときに効果 
- 
3GBのfsimageの場合、必要なヒープが46GBから7GBに減少 
 
Hadoop 2.6から使える予定 
 
dfs -findコマンド(HADOOP-8989)との連携で、簡単な検 索が可能に 
レビューは完了、コミット待ちの状態 
WebImageViewerの今後 
bash$ bin/hdfs dfs -find webhdfs://127.0.0.1:5978/ - name '*tmp*' webhdfs://127.0.0.1:5978/tmp
Copyright © 2011 NTT DATA Corporation 
Copyright © 2014 NTT DATA Corporation 
お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496

More Related Content

Viewers also liked

AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-Takahiro Kida
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Kishin Yagami
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)Shingo Kitayama
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Shingo Kitayama
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみたShuntaro Saiba
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!hiyohiyo
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)NTT DATA OSS Professional Services
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうTakayuki Hayashi
 
2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」Ryo Okubo
 
Favorite English YouTube Channels
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube ChannelsEmma Haruka Iwao
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu AsanoInsight Technology, Inc.
 
ほんとうはこわいAnsible
ほんとうはこわいAnsibleほんとうはこわいAnsible
ほんとうはこわいAnsibleTakahiro Nakayama
 
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策Amazon Web Services Japan
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話Shohei Koyama
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発hiyohiyo
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみましたTakeshi Kuramochi
 

Viewers also liked (20)

AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
サーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろうサーバーの動くメモをAnsibleでとろう
サーバーの動くメモをAnsibleでとろう
 
2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」2012/11/14 softlab_study 発表資料「SSDの基礎」
2012/11/14 softlab_study 発表資料「SSDの基礎」
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
Favorite English YouTube Channels
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube Channels
 
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
[B11] 基礎から知るSSD(いまさら聞けないSSDの基本) by Hironobu Asano
 
ほんとうはこわいAnsible
ほんとうはこわいAnsibleほんとうはこわいAnsible
ほんとうはこわいAnsible
 
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
 
わかる!一眼
わかる!一眼わかる!一眼
わかる!一眼
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発
 
Ansible はじめてみました
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみました
 

More from NTT DATA OSS Professional Services

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 

More from NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 

Hadoop OfflineImageViewerの変遷 (Cloudera World Tokyo 2014 LT講演資料)

  • 1. Copyright © 2014 NTT DATA Corporation 1 (株) NTTデータ 基盤システム事業本部 鯵坂 明 2014/11/6 Cloudera World Tokyo 2014 OfflineImageViewerの変遷
  • 2. Copyright © 2014 NTT DATA Corporation 2  NTTデータ OSSプロフェッショナルサービス  Hadoop関連のR&Dやシステム開発に従事  約1年前からHadoop本体の開発に参加  ドキュメント  バグフィックス  運用強化  などなど  OfflineImageViewerの開発者  何か問題があれば、直します 自己紹介:鯵坂 明 (あじさか あきら)
  • 3. Copyright © 2014 NTT DATA Corporation 3  HDFSのメタ情報であるfsimageを人間が読める形式に変換す るためのツール  Hadoopクラスタを起動する必要はなく、文字通り「オフライン」 で変換  HDFSの利用状況を分析するのに便利 OfflineImageViewer(以下、OIV)とは HDFSIMG1^Y^H<AC><B3><F5><D7>^A^P<E8>^G^X<C2><90>^L ^@(<DA><88><8C><80>^D0<A8> <AA>L^F^H<EF><A8>^N^PR^B^P<81><80>^A^Z^@*<D9><D3><AF><95><91>)^P<FF><FF><FF><FF><FF><FF><FF><FF>^?^X<FF><FF><FF><FF><FF><FF><FF><FF><FF>^A!< ED>^A^B^@^@^A^@^@^B ^P<84><80>^A^Z^Ctmp*<8F><F6><E3><E8><87>)^P<FF><FF><FF><FF><FF><FF><FF><FF><FF> ^A^X<FF><FF><FF><FF><FF><FF><FF><FF><FF>^A!<FF>^A^B^@^@^A^@^@^B^P<92>< 80>^A^Z^Khadoop-yarn*<DA> ... drwxrwxrwx - root supergroup 0 2014-09-16 15:14 /tmp drwx------ - root supergroup 0 2014-09-16 15:14 /tmp/hadoop-yarn drwx------ - root supergroup 0 2014-09-16 15:14 /tmp/hadoop-yarn/staging
  • 4. Copyright © 2014 NTT DATA Corporation 4  OIVで利用可能なオプション (合計6つ) Hadoop 2.3以前 オプション 説明 Ls ls形式で出力 XML XML形式で出力 Indented インデントした状態で出力 Delimited 任意のdelimiter区切りで出力 FileDistribution ファイルサイズの統計情報を出力 NameDistribution ファイル名・ディレクトリ名の統計情報を出力
  • 5. Copyright © 2014 NTT DATA Corporation 5  使ってみると、色々とバグが見つかった  helpの出力で、あるべき改行が抜けている  FileDistributionで'-maxSize'と'-step'を指定するとOIVが落ちる(!)  NameDistributionで不要な行が表示される  報告すると、「HDFS-5698 branchがマージされると、今の OIVはDeprecatedになるから待って」と言われた 言われるがまま、HDFS-5698がマージされるのを待った OfflineImageViewerのバグ
  • 6. Copyright © 2014 NTT DATA Corporation 6  fsimageの形式が変化 (HDFS-5698)  ProtocolBuffersでシリアライズ/デシリアライズ  fsimageのフォーマットを更新するのが非常に簡単になった  OIVも、新しいfsimageを読み込むために再実装された Hadoop 2.4で、OIVは大きく変化
  • 7. Copyright © 2014 NTT DATA Corporation 7  OIVで利用可能なオプション  オプションが6つから3つに減少 デグレしてる! 2.4のOfflineImageViewer オプション 説明 Ls ls形式で出力 XML XML形式で出力 FileDistribution ファイルサイズの統計情報を出力
  • 8. Copyright © 2014 NTT DATA Corporation 8  失った機能を取り戻したい  Indented, Delimitedについて実装しようとしたが、 「Indented/Delimited formatの目的であるfsimageの分析には、 XMLを使ってくれ。コードが重複することは避けたい。」と言われた 2.5に向けた機能追加(その1)
  • 9. Copyright © 2014 NTT DATA Corporation 9  機能の追加も提案 (HDFS-5975)  「fsimageが巨大だとLsの結果も大きいから、特定のファイルパスの 情報だけ取り出したい」 という提案をしたところ、  「read only のWebHDFS APIを提供する、jhatのようなツールを作っ てみたらどうか」と、逆に提案された 2.5に向けた機能追加(その2)
  • 10. Copyright © 2014 NTT DATA Corporation 10  実装した! (HDFS-5978)  HTTPサーバを起動  WebHDFS APIでアクセス  2.5.0から利用可能 WebImageViewer bash$ bin/hdfs oiv -i fsimage 14/04/07 13:25:14 INFO offlineImageViewer.WebImageViewer: WebImageViewer started. Listening on /127.0.0.1:5978. Press Ctrl+C to stop the viewer. bash$ bin/hdfs dfs -ls webhdfs://127.0.0.1:5978/ Found 2 items drwxrwx--- - root supergroup 0 2014-03-26 20:16 webhdfs://127.0.0.1:5978/tmp drwxr-xr-x - root supergroup 0 2014-03-31 14:08 webhdfs://127.0.0.1:5978/user
  • 11. Copyright © 2014 NTT DATA Corporation 11  fsimageの形式が変わったことで、OIVを動かすのに必要なメ モリが急増  1.4億ファイル/ディレクトリのfsimageだと、80GBあっても足りない  2.3までだと、350MBで足りた メモリ使用量の削減案はあったが、1GBのヒープで動かすた めのアイデアが浮かばず 最終的に、 2.3までのOIVを、oiv_legacyコマンドとして復活 (HDFS-6293) NameNode(standby) or SecondaryNameNodeで旧形式の fsimageをdumpさせるためのオプションを追加 -"dfs.namenode.legacy-oiv-image.dir" 2.5に向けた機能追加(その3)
  • 12. Copyright © 2014 NTT DATA Corporation 12  メモリ使用量の削減 (HDFS-7158)  巨大なfsimageを読むときに効果 - 3GBのfsimageの場合、必要なヒープが46GBから7GBに減少  Hadoop 2.6から使える予定  dfs -findコマンド(HADOOP-8989)との連携で、簡単な検 索が可能に レビューは完了、コミット待ちの状態 WebImageViewerの今後 bash$ bin/hdfs dfs -find webhdfs://127.0.0.1:5978/ - name '*tmp*' webhdfs://127.0.0.1:5978/tmp
  • 13. Copyright © 2011 NTT DATA Corporation Copyright © 2014 NTT DATA Corporation お問い合わせ先: 株式会社NTTデータ 基盤システム事業本部 OSSプロフェッショナルサービス URL: http://oss.nttdata.co.jp/hadoop メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496