Hadoopアドベントカレンダー2013、1日目です。

みんな大好き、かわいい象のマスコット(画像)でお馴染みのApache Hadoop(以下Hadoop)。運良く初日を取れたので、2013年のHadoop関連の話題をまとめてみました。
※このブログの内容は所属している組織には関係なく、個人的な雑感です。間違いがあればご指摘下さい。
※なお、中立的に書いているつもりですが、多少偏りがあるかもしれません。特に悪意はありません :p
俺的Hadoopの話題2013:ベスト3
番外編
当初はベスト10にしようと意気込んでブログを書いていたところ、ものすごい長文になったので、涙をのんで3つに絞りました。漏れたネタはおいおい紹介します。
1. ついにHadoop 2系がGAに!
2006年4月1日、Doug Cutting氏らによってHadoopの最初のバージョンが公開されました。その後Hadoopは順調に成長を続け、昨年1.0.0が公開。2.0系は長らくアルファ版、ベータ版で公開されていましたが、ついに先月正式版がリリースされました。Hadoopはかなり不思議なバージョニング[*1]になっていましたが、ようやく落ち着いたはず?
| 公開年月日 | バージョン | イベント |
|---|---|---|
| 2006/4/1 | Hadoop 0.1 | 象、誕生 |
| 2009/4/22 | Hadoop 0.20 | 実質的に広く使われていた0.20系の最初のリリース |
| 2010/2/26 | Hadoop 0.20.2 | Clouderaのディストリビューション、CDH3のベース |
| 2012/12/27 | Hadoop 1.0.0 | 0.20系をベースにしており、名前が変わっただけ? |
| 2013/5/23 | Hadoop 2.0.0 | アルファ版。 CDH4のHDFS、MRv2はこのバージョンがベース |
| 2013/8/25 | Hadoop 2.1.0-beta | ベータ版 |
| 2013/10/15 | Hadoop 2.2.0 | 正式リリース |
Hadoop 2.2.0で何が変わったのか?
興味のあるところを大雑把に。
HDFS
- ネームノードが高可用性に対応。単一障害点の解消 [*2]
- よりスケールアウトするため、フェデレーション構成が可能に [*2]
- HDFSスナップショット機能に対応
- NFSv3に対応
- キャッシング機能を搭載(予定)
HDFSはマスターノードが単一障害点、エンタープライズじゃ使えない!と言われてきました(まだ言っている人も。。)が、ネームノードは高可用性に対応しています。象本3版、またはパカ本、徹底入門2版あたりにも書かれているので、ウェブで見かけたら記載日時をチェックしましょう。スライドシェアならこのあたりが参考になるかもしれません。少なくともCDH4に関しては、ネームノードとジョブトラッカーはともに高可用性に対応しており、多くの環境で高可用性で動作しているの実績があります。
Hadoop 2.2.0からはNFSv3にも対応し、NFSクライアントからHDFSをマウントできるようになっています。まだいくつかの制限はありますが、非Hadoop環境との間でファイルのコピーを行いたい場合には便利ですね。以前試してみましたが、普通にあっさりと使えました。-> NFSv3を試したブログ
その他、HDFSのスナップショットやHDFSでのキャッシングに対応する予定など、機能は追加され、性能は改善され続けています。最近のHDFSのパフォーマンス、数年前と比べるとかなり向上しています。さらには、今後導入HDFSのキャッシングも導入される予定。個人的にかなり期待しています。
実行基盤
従来のHadoopの分散処理の実行基盤、MapReduce(便宜的にMRv1と呼びます)では、リソース管理、フレームワーク、MapReduce APIの3つのコンポーネントをひとつで担っていました。Hadoop 2系ではこれを分離し、リソース管理をYARN (Yet Another Resource Negotiator)が行い、MapReduce(MRv2)はYARN上で動作するアプリケーションとして、フレームワークとAPIとを提供します。
従来のMapReduceでは管理者が設定した「スロット」の数に基づいて、スレーブノードに処理を振り分けていましたが、YARNではメモリとCPUコアの「リソース」に基づいて処理を振り分けるので、効率的なリソース管理を行うことができます。また、YARNはMapReduceに特化していないので、MapReduceだけではなく、グラフ処理のGiraphや、Cloudera Impalaなども対応してきています。今後の分散処理基盤としての地位を築いていくのでしょうか。
とはいえMRv1に慣れている方にとっては、わざわざ新しい環境に移行するのをためらう方も多いでしょう。でも、幸いなことにMRv1とMRv2にはコンパチビリティがあります。また、HiveやPigなどの利用者は、抽象化されているのであまり気にしなくても良いのかもしれません。(しかし、設定方法、運用テクニック、チューニング手法、トラブルシュートなどが大きく変わるので、管理者は大変でしょうが。。。)
2. 分散クエリエンジンの乱立
昨年のStrata+Hadoop World 2012で発表された、分散クエリエンジンCloudera Impalaに続き、今年はいくつかの分散クエリエンジンが公開/アナウンスされています。そのうちのいくつかを紹介。
- Cloudera Impala
- The Stinger Initiative
- Facebook Presto
- Apache Drill
Cloudera Impalaは昨年リリースされた分散クエリエンジンです。Apacheライセンスでソースコードが公開されているオープンソースソフトウェアで、GoogleのDremel、GoogleのF1に影響を受けて開発されています。C++で開発され、技術的にはMapReduceを使わずに分散処理を行います。アーキテクチャはClouderaのブログの絵がわかりやすいかもしれません。
なお、近々オライリーさんからImpalaのフリーブックの日本語版がダウンロードできるようになる予定です。
The Stinger InitiativeはApache Hiveのクエリを高速化するもので、将来的にApache Tez (incubator) 上で動作することを目指しています。
Prestoは先月Facebookがオープンソースで公開したクエリエンジンです。Impalaと似たアーキテクチャーになっているようですね。
Apache Drill (incubator)はGoogleのDremelを参考に開発が始まったオープンソースソフトウェアですが、現時点ではアルファ版のようです(あまり情報がなかったので、どこまで動作するのかは不明)
他にも「HiveよりXX倍速い」というフレーズのニュース記事を見かけることも多い、かなりアツい領域です。最適化やクエリの種類によって得意/不得意があるので、なんだかなぁとも思いますが、結論としては「みんなSQL好き」ということかと(笑
3. Hadoopのセキュリティ
Hadoopは、当初検索エンジンのインデックスを作成するために開発されたということもあり、比較的最近になってからセキュリティに対する取り組みがされています。最近ではHadoopがより多くの用途で利用されるようになり、必然的に重要な情報を扱うケースも増えたことから、セキュリティに関する話題も増えています。
例:
Strata + Hadoop World 2013: Securing the Apache Hadoop Ecosystem
ZDNet: The Odd Couple: Hadoop and Data Security
InfoQ: Big Data Security: The Evolution of Hadoop’s Security Model
最近のHadoopでは通信の暗号化もでき、HiveやImpalaのデータの認可を行うモジュールが公開されたりしています Apache Sentry (Incubator)。(slideshareはこちらがわかりやすい)。HDFSでの暗号化に関するチケットもあるようなので、いずれは暗号化も対応するのかも?。
ということで、HadoopでKerberos認証を利用する企業は既に一般的になってきています。エンタープライズでの用途が増えるに従い、セキュリティは強化されていくことでしょう。
おまけ. HadoopのGUI、Hue
Hadoop用に開発されているブラウザベースのGUI、Hue(「ひゅー」と読む)はオープンソースで開発(https://github.com/cloudera/hue)されており、ClouderaのCDHだけではなく、多くのディストリビューションで採用され始めています。
Hueに関してはHadoopオペレーションの付録に寄稿したり、このブログでも何回か取り上げていますが、個人的に一押しです。Hueによりコマンドラインを使う必要が減るため、多くの方にとって嬉しいツールでしょう。Hueのブログを日本語化を手伝っているので、興味があれば是非ご覧下さい。
また、Hueは新機能がどんどん実装されています。現在開発されているHueの3.5では、HBase、ZooKeeper、Search (Solr)、あるいは外部ツールとの連携や、Apache Sparkにも対応しつつあります。HueはHadoopのユーザー用GUIツールとしての大本命[*3]ではないでしょうか。
番外編
1. Hadoopの日本語書籍が充実
日本語のHadoop関連の書籍も増えましたね。今年発売された書籍をあげてみると、、
- 翔泳社 Hadoop徹底入門 第2版
- オライリー Hadoop 第3版(象本3版)
- オライリー プログラミングHive
- オライリー Hadoopオペレーション (パカ本)
日本語に翻訳している玉川竜司 (@tamagawa_ryuji)さんには感謝してもしつくせません。さらに日本語の情報もますます充実していくといいですね。
(出版されている書籍が漏れていたらすみません)
2. Hadoop関連イベント
日本では、まず年明けに東京ビッグサイトで開催されたHadoop User Conference Japan 2013。(思えば当日インフルエンザで自宅謹慎になり、@dice_氏にImpalaの発表を代打をしてもらった思い出がm(__)m)。あとは、Hadoop Summit 2013(過去のイベント情報が消えてる?)、定番のStrata+Hadoop World 2013、HBase単体でも開催されているHBaseCon 2013。先日東京で開催された Cloudera World Tokyo 2013など、多くのイベントが開催されています。とはいえ、StrataやCloudera World Tokyoではデータサイエンス系のセッションも多く、Hadoopが多くの領域で利用されていることがわかります。
3. 日経トレンディの技術部門でHadoopが10位に!?
日経トレンディによる「今年、社会にインパクトを与えた技術ベスト10」の第10位に「Hadoop(ハドゥープ)」がランクイン。(‘ jjj ‘)
さすが人気沸騰。象のパワー、恐るべし、、、
まとめ
ここ数年のHadoopアドベントカレンダーを見ると、数年前はHadoopの技術的な話が多かったようですが、今年はかなり多様化していますね。アドベントカレンダーは明日以降も興味深い内容が多く楽しみです。まだまだ飽きが来ない象の世界、来年も盛り上げて行きましょう!
[*1] 何と言ってもエイプリルフールのネタになるぐらいですから。。0.23の方が0.22より早くリリースされるという摩訶不思議な事件もあったし
[*2] CDH4から利用可能です
[*3] 管理ツールとしてはCloudera Managerも一押しです。Enterprisezineで記事を連載しているので、興味があればご一読下さい。


コメント
YARNについては@oza_x86さんのスライドがわかり易いです http://www.slideshare.net/ozax86/ntt-meets-hadoop-and-cloudera-world-tokyo