LoginSignup
5
5

More than 5 years have passed since last update.

Hadoop 2.5.0がリリースされました

Last updated at Posted at 2014-08-25

変更点とか、追加機能についていくつかメモ書き。

概要

リリースノートはこちら。2.5.0になって、ようやくこのページが更新されました。次回以降のリリースでも、このページが更新されるようにしていきたいですね。

Hadoopユーザにとって嬉しい機能としては、こんなのがあります。

  • A new Hadoop metrics sink that allows writing directly to Graphite.
  • YARN's REST APIs now support write/modify operations. Users can submit and kill applications through REST APIs.

また、HDFS Rolling Upgradeが適用可能な最初のマイナーバージョンアップでもあります。(2.4 -> 2.5.0)

ちなみに、

  • Using the OfflineImageViewer, clients can now browse an fsimage via the WebHDFS API.

これは自分が実装しました。ほぼ全てHortonworksのHaohuiさんにレビュー・コミットしてもらっていて、彼にはとても感謝しています。
OfflineImageViewerで特定のディレクトリの情報だけ取りたい、というような場合に役に立ちます。後ろのほうに説明があります。

(dist)cpに関するオプション

cpコマンドにACLを保持するオプション(-pa)と、XAttrを保持するオプション(-px)が追加されました(distcpも同様)

  • ドキュメントはこちら
  • 全てを保持したいときは、$ cp -ptopax src dstで大丈夫
t: time
o: owner
p: permission
a: ACL (自動的にpermissionも保持する)
x: XAttr

注意点

  • cp -pは今までどおり、time, owner, permissionを保持する
  • ただし、cp -paだとtime, ownerは保持されない
  • srcのFileSystemがACLに対応していない場合、もしくは、srcがACLを保持しているがdstのFileSystemがACLに対応していない場合、cp -pa src dstは失敗する
  • XAttrの場合でも、同様

oiv_legacyコマンドの追加

Hadoop 2.4でfsimageの形式が変わった(HDFS-5698)ため、それを読み込んでdumpするツールであるOfflineImageViewerも変化した。

2.3以前のoivでできたこと

  • Ls: ls形式で出力
  • XML: XML形式で出力
  • Indented: インデントした状態で出力
  • Delimited: 任意のdelimiterで出力
  • FileDistribution: ファイルサイズの統計情報を出力
  • NameDistribution: ファイル名・ディレクトリ名の統計情報を出力(NameNodeではファイル名・ディレクトリ名をStringで保持するので、使い回せばその分ヒープが節約できる)

2.4のoivでできること

  • Ls
  • XML
  • FileDistribution

デグレ!

2.5のoivでできるようになったこと

  • Web: 指定したポートにWebHDFS REST API(read-only)を提供するHTTPサーバを起動する。hdfs dfs -ls webhdfs://localhost:5978/path/to/dirのようにアクセスすることで、interactiveにfsimageの情報を出力させることが可能。要はjhat的なもの。(HDFS-5978)

    • 今後、dfs -findコマンドと組み合わせることで様々な条件で検索できるようになる予定。
    • findコマンドはまだマージされていないけど、2.6では使えるようにしたい。
  • XML

  • FileDistribution

これでもまだ足りない上に、性能問題も指摘 (HDFS-6293)

  • fsimageが巨大だと、それに応じて大量のメモリが必要 (2.4のLsでも同様)
  • fsimageの形式が変わったことで、一旦ほぼ全ての情報をメモリに読み込む必要が出たため

解決策(妥協案): oiv_legacyコマンド

  • 2.5.0で追加された機能
  • SecondaryNameNode/CheckpointNodeで旧形式のfsimageを追加でdumpするよう修正 (プロパティ"dfs.namenode.legacy-oiv-image.dir"を設定すると、設定したディレクトリに出力される)
  • dumpされた旧形式のfsimageに対してoiv_legacyコマンドが使える
  • oiv_legacyコマンドは2.3までのoivコマンドと同じ、すなわち2.3までと全く同じことができる

これで、めでたく昔の形式を利用するツール(例:hdfs-du)も今まで通り使えるようになります

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5