ダウンロード mapred-site.xml (1.4 KB)
ダウンロード core-site.xml (555.0 B)
ダウンロード hdfs-site.xml (810.0 B)
「全てのDBコア技術を知りたいなら!これしかない!」10月に開催されるdb tech showcaseでは、数々のコアな話が飛び出します。筆者もそれに参戦すべく、R&D専用の高速クラスタマシン「Insight Qube PYTHON」を使ってHadoopをぐりぐり動かし、Twitterを分析しちゃいます!

Hadoopを気持ちよく使っていますか?
突然ですが、DBエンジニアのみなさま、Hadoopは使っていますか?バリバリ使っているよ!という方がいらっしゃる一方で、そろそろ新しい技術にも触れなければと焦って手元の環境にHadoopをインストールしたものの、特に使い道が思い浮かばずHDFSにファイルをアップロードしたりベンチマークを動かしたりしただけであとは放置、という方も多いのではないでしょうか。かくいう私もそうでした。しかも、もっさりとしか動かない仮想環境にこぢんまりと1台クラスタ(ってクラスタではないですね)を作ってデータ量を気にしながらちまちまと動かしていたので、使っていてもちっとも気持ちよくない!使っていて気持ちがよくなければいい発想も生まれませんね。
そんな折、10月に開催される「db tech showcase」の発表のために「Insight Qube PYTHON」でHadoopクラスタを組んでみることにしました。実際に組んでみると、速い!サクサク動く!クラスタの各ノードが一斉にジョブを実行する様が壮観!と、すっかり気持ちよくなってしまいました。そこで、一丁このHadoopクラスタでバリバリ分析してやろうか!と、勢いに任せてHadoopのジョブをぐりぐり動かしてTwitterのデータを分析した、その過程を今回の連載でお見せします。第1回は導入編として、今回使ったHadoopクラスタを構築するまでをご紹介します。
※「Insight Qube PYTHON」とは
たった8台。でも100台分のパワー。HadoopのR&Dを誰にでも可能にしたマシンです。詳しくはこちら。
Hadoopクラスタを作ってみよう
ではさっそくHadoopのクラスタを作ってみましょう。今回は以下の構成のマシンを8台用意しました。

CPUはコア数が多いものを用意し、かつSSDを使用してI/O待ちを排除することでHadoopの並列処理がフルに生かされるようにします。また、ノード間通信にはInfiniBandを使用し、ネットワークI/O待ちも排除しています。今回はIPoIB(IP over InfiniBand)というプロトコルを使うことで、Gigabit Ethernet使用時と変わらない使い勝手としています。
次に、Hadoopの各サービスをクラスタ内のどのノードに配置するかを設計します。HadoopはHDFSと呼ばれるファイルシステムとMapReduceと呼ばれるデータ処理のための仕組みを持ち、それぞれ全体を管理するサービス(HDFSはNameNode、MapReduceはJobTracker)と、それを受けて実際にデータを保存したり加工したりといった仕事をするサービス(HDFSはDataNode、MapReduceはTaskTracker)があります。


一般にNameNodeとJobTrackerをマスタ、DataNodeとTaskTrackerをスレーブと呼び、大規模なクラスタではリソース消費の観点からマスタとスレーブは別のノードに置いた方がよいとされています。具体的には、NameNodeはHDFS上のファイル数や使用ブロック数が増えるほどメモリを消費し、JobTrackerはMapReduceジョブが同時に大量に実行されるほどCPUリソースを消費します。
しかしながら、今回用意したのはわずか8台のマシンで、しかも利用者は筆者のみ。よってマスタとスレーブは同居させてしまいます。
また、実運用では可用性もしっかりと考慮する必要があります。特にマスタノードは今回使用するバージョンのHadoopでは単一障害点(SPOF)となる部分です。よって環境によっては別途PacemakerやDRBDといったプロダクトを用いてHA構成をとることが望ましい場合があります。しかし今回はR&Dということで、このあたりは一切考慮せずHA構成はとらないこととします。壊れたら潔く作り直しです。
以上の方針で図4の通りにHadoopの各サービスを割り当て、クラスタを構成します。

この記事は参考になりましたか?
- HadoopでTwitterを分析してみた連載記事一覧
- この記事の著者
-
平間大輔(ヒラマダイスケ)
株式会社インサイトテクノロジー
ビッグデータ・ソリューション開発部 外資系ITアウトソーシング会社を経て2011年にインサイトテクノロジー入社。
Oracle大好き、SQLのコーディング大好き人間だったが、気づけばSSD, InfiniBand, Hadoopといった旬のハー...※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア