2017.06.20

Hadoop を新たに学んでいくには


こんにちは。次世代システム研究室で Hadoop 周辺をよく触っている T.O. です。
Hadoop 周辺をよく触っているので、最近 Hadoop 周辺を触ってきて得た話などを書いていきます。

今回は今までとは趣向を変えて、「 Hadoop を新たに学んでいくには」ということについて考えていきたいと思います。

というのも私の場合、業務にて「今まで Hadoop を使っていなかった組織に Hadoop を導入する」ということがしばしば発生し、そういうケースでは最終的に元々その組織にいるメンバーに Hadoop のなんたるかをある程度理解していただき、とりあえず運用はできるようにしていかないといけない、というミッションが発生します。そのようなミッションを完遂するために、初学者はどのようにやっていけばよいのか、ということをよく考えることに至っています。

このようなケースでは、ひとりかふたり、 Hadoop 運用専任となる人を立ててもらい、その人にまず概説をしつつ、日々のオペレーションや障害対応を少しずつ移譲していき、最終的にはひとり立ちしていただく、という流れをとることが多いです。しかし、それだけだとどうしても「よくわからないけどなんとか運用はしていける」になりがちで、基礎的の部分であるとか概念的な話であるとかより詳細なアーキテクチャの理解というのがついていかない、ということが起きがちです。

ということで、そのあたりをどのように埋めていこうか、という話が課題になってきます。


書籍


なにか新しい道具を、となれば、やはりなにか書籍を、という発想にはなるだろうと思います。

Hadoop の定番の書籍というとオライリー・ジャパンの「 Hadoop 第3版」です。いわゆる「象本」ですね。 Hadoop のなんたるかを一から学ぶには良い本だと思います。歴史的な背景、 HDFS や MapReduce の仕組みや挙動、そして Hadoop エコシステムのツール群などなどについて知ろうとなると、やはりまずはこれを読め、ということになりますし、私もそのように薦めています。分厚いですが、ひととおり読む価値がある一冊です。

しかしながら、2017年現在においては、この本だけ読んでれば良い、ということにはなりません。というのもこの本、いかんせん古い。2013年7月の発行です。 Hadoop は日々進化していっているため、この本では最新の情報までカバーできません。ということでこの本については「ひととおり読むべきであるが、古い内容を含んでいることに注意せよ」と、薦める際には併せて伝えるようにしています。これと同様のことが翔泳社の「Hadoop 徹底入門 第2版」にも言えます。これも 2013 年 7 月の発行です。

なお、象本については、原著(英語で書かれている)は第4版が出ています。これは 2015 年 3 月発行なので、英語でいいからより新しい内容を読みたい、ということであれば、こちらを読むのがよいと思います。実は私の手元にはないのですが、目次を見る限り、かなり現代的な内容になっています。ただし、それでも2年前なので、最新の事情を知る、というところまでは手が届きません。


ウェブサイト


前述したとおり、日本語で書かれた本に関して言えば、ひととおり読むべき本としては「象本」はあるものの、いかんせん古いので、そこに最新の情報を足していく上では、ウェブサイトから得られるドキュメントが欠かせません。

Hadoop の場合、最新の情報についてしっかり書かれたドキュメントということになると、 ASF, Hortonworks, Cloudera が提供しているものになるかと思います。特に Hortonworks, Cloudera それぞれのディストリビューションを使っている場合は、それぞれで実際に使っているバージョンのドキュメントはしっかり読んだ方がよいです。


Cloudera や Hortonworks はブログもあります。よりホットな話題を追うには必読でしょう。


gihyo.jp で連載されていた「Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装」も良い記事だと思います。社内でオライリー・ジャパンの「 Hadoop 第3版」の読書会を開いた際にも、副教材的にこのサイトを用いたりもしました。


動画

最近では動画で学ぶ、ということもできます。日本語もありますが、だいたい英語です。
リアルタイム性のあるウェビナーもしばしば開催されていますし、 Hortonworks も Cloudera も YouTube でチャンネルを持っています。


英語がイケる方には、これらも併せて見ていただくとよいかもしれません。


ハンズオン


ドキュメントを読んで学んだことはやはり実際に動かして確認してみたい、となると思いますし、「身につける」には欠かせないステップだと思います。実業務の個別の作業の移譲という中でも、もちろん手を動かしていくわけですが、いわゆる本番環境では、なかなか試してみたいことを試しづらい、ということもあります。いわゆる検証環境・開発環境があったとしても、それも必ずしも自由に使えないこともあるかと思います。

とはいえ、いろいろ試すだけのために物理マシンを別途用意して・・・というのは現実的ではないと思います。が、今の世の中はクラウドサービス全盛ですから、その手のサービスを使って構築してみる、というのはありですね。

クラウドサービスで Hadoop を簡単に動かすためのツールも提供されていて、 Cloudera は Cloudera Director を、 Hortonworks では Cloudbreak を用意しています。また、これら二社は PaaS としてもやっていて、例えば AWS を利用したサービスですと、 Cloudera は Cloudera Altus, Hortonworks は Hortonworks Data Cloud for AWS を提供しています。

また、ローカルでホントに軽く試すだけでいい、ということであれば、Cloudera の場合は、 Cloudera QuickStart VM を、 Hortonworks の場合は、 Hortonworks Sandbox を使えばローカルでそれぞれ CDH, HDP を利用したクラスタを動かすことができるようです。

このようにハンズオンで何か、ということをさくっとやるための環境というのは、2017年現在においては、いろいろと用意されています。いい世の中になりました。

ただし、実は私はこれらを使ったことがありません。というのも、私が所属するGMOインターネット 次世代システム研究室では、サバろうぜ!という学習支援制度があり、これによって、GMOアプリクラウドを利用することができます。そのため、私の場合は新しいバージョンやコンポーネントを試そうとなると、これを使って試すことにしています。


トレーニングと資格


Cloudera や Hortonworks はトレーニングや資格もやっています。お金はかかっても確実にスキルを身に着けていきたい、ということであれば、これらを利用するのが手っ取り早いかもしれません。なにせ教えてくれるのは本物の Hadoop のプロです。ただし、そこそこのいい金額がかかるようですが…。



まとめ


いろいろと教材はあるわけですが、やはりとりあえず象本は読むべし、そして最新の動向を追うべくウェブサイト・ブログも併せて読むべし、もしお金があるならば有償のトレーニングを受けるのもあり、ということになりそうです。


最後に

次世代システム研究室では、グループ全体のインテグレーションを支援してくれるアーキテクトを募集しています。
インフラ設計・構築経験者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、
ぜひ 募集職種一覧 からご応募をお願いします。