読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

Hadoopの導入(CDH3)

Hadoop
分散処理フレームワークとして有名なHadoopを入れてみます。 本来分散処理なので複数の端末を想定すべきですが、擬似分散モードというのがあるためそちらでとりあえず導入して遊んでみようと思います。 ◆事前準備 JDKが必要です。 $ sudo aptitude install openjsk-7-jdk 次にリポジトリを追加します。HadoopのパッケージをClouderaというところが出しているのですが、現状は CDH3・・・Hadoop v1 CDH4・・・Hadoop v2 とバージョンが異なるので注意してください。今回は情報の多いCDH3の方で導入します。 $ sudo emacs -nw /etc/apt/sources.list.d/cloudera.list deb http://archive.cloudera.com/debian squeeze-cdh3 contrib deb-src http://archive.cloudera.com/debian squeeze-cdh3 contrib $ sudo aptitude install curl $ curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add - ◆インストール 準備が完了したらインストールします。Hadoopには3つのモードがあります スタンドアローンモード ②擬似分散モード(シングルノード) ③完全分散モード(クラスタ ①は分散ではなく動作確認のためのモードです。②は1台のPCで分散処理をさせる方法。③は完全に複数のマシンで完全な分散処理をさせる方法です。 今回は1台で完結させるため、②の擬似分散モード(hadoop-0.20-conf-pseudo)をインストールします。 $ sudo aptitude update $ sudo aptitude install hadoop-0.20-conf-pseudo 以下のパッケージがインストールされます。 hadoop-0.20-conf-pseudo hadoop-0.20-datanode hadoop-0.20-namenode hadoop-0.20-secondarynamenode hadoop-0.20-tasktracker hadoop-0.20-jobtracker 次に、namenodeのファイルシステムを初期化する必要があります。 CentOSだとインストールスクリプトで初期化処理があるみたい インストール時にhdfsユーザが作られているのでそれにログインしてフォーマットします(それ以外のユーザだと権限がないため怒られます?)。 $ sudo su - hdfs $ hadoop namenode -format (Y or N)と聞かれるので「大文字のY」で入力してエンターを押します。フォーマットしたらhdfsユーザからログアウトしてOKです。 最後にやや面倒なのがサービスの起動です。それぞれを個別に起動しなくては行けません。なのでfor文で起動させます。 $ sudo su # for service in /etc/init.d/hadoop-0.20-*; do $service start; done 停止も同様です。再起動は restart と書いてください。 $ sudo su # for service in /etc/init.d/hadoop-0.20-*; do $service stop; done ちゃんと起動していれば、 $ sudo jps 2375 JobTracker 2527 NameNode 2642 SecondaryNameNode 1504 DataNode 2737 TaskTracker の5つを含むデーモンプロセスが表示されます。 ◆動作確認 WebUIにアクセスします http://localhost:50070/ 画像のような表示がでれば成功です。 hadoop.png ソース: Ubuntu 12.04 LTSにHadoopの実験環境 (疑似分散モード)を構築 UbuntuにHadoopをインストールしてみる(1マシン上に)