- 2009-11-03 (Tue) 1:08
- Hadoop

昔色々と記事を書きましたが、1年半経って、もはや内容が古くなって来ました。
Hadoopのインストールは、最近はCloudera Distribution for Hadoopを使用するのが一般的なようなので、こちらでのインストール方法を紹介します。

まずはEC2で2インスタンス立ち上げます。一つがNameNode/JobTracker用、もう一つがDataNode/TaskTracker用です。仮に、ホスト名をmaster, slaveとしておきます。OSはCentOSが推奨されています。
次にCloudera Configuratorにアクセスし、使用するクラスタの構成などを入力します。それらの情報(例:ノードのコア数・メモリ容量・台数など)からConfiguratorは最適なパラメーターを導出し、設定ファイルをrpmの形で自動生成してくれます。デフォルトパラメーターの悪い部分なども全て直してくれますので、性能が出ない可能性が、格段に下がると思います。
Configuratorに一通り情報を入力すると、最後の画面でcloudera-repo.*.noarch.rpmというファイルが生成されますので、ダウンロードし、全ノードにインストールを行います。このrpmをインストールすると、/etc/yum.repos.d/cloudera.repoというファイルが出来ます。
$ rpm -Uvh cloudera-repo-0.1.0-1.noarch.rpm $ ls -al /etc/yum.repos.d/cloudera.repo -rw-r--r-- 1 root root 256 Nov 2 09:25 /etc/yum.repos.d/cloudera.repo
cloudera.repoには、先ほどの設定を含んだHadoopのパッケージが設置されているリポジトリの場所が記述されています。具体的にどのようなパッケージがあるかは、以下のようにして探すことができます。kzkhadoopというクラスタを指定したために、このような名前になっています。
$ yum search hadoop-conf-kzkhadoop Loading "fastestmirror" plugin Loading mirror speeds from cached hostfile * cloudera: cloudera-yum.s3.amazonaws.com * cloudera-conf: cloudera-yum-conf.s3.amazonaws.com * extras: centos.cs.wisc.edu * updates: mirrors.cmich.edu * base: repo.genomics.upenn.edu * addons: mirror.steadfast.net hadoop-conf-kzkhadoop-client.noarch : Hadoop Active Configuration generated by Cloudera Configurator hadoop-conf-kzkhadoop-master.noarch : Hadoop Active Configuration generated by Cloudera Configurator hadoop-conf-kzkhadoop-slave.noarch : Hadoop Active Configuration generated by Cloudera Configurator
まず、masterにhadoop-conf-kzkhadoop-masterをインストールします。
master% yum install hadoop-conf-kzkhadoop-master.noarch
次に、slaveノードで hadoop-conf-kzkhadoop-slave.noarch をインストールします。
slave% yum install hadoop-conf-kzkhadoop-slave.noarch
HDFSをフォーマットします。masterノードで以下のコマンドを打ちます。
master% /sbin/runuser -s /bin/bash - hadoop -c 'hadoop namenode -format' 09/11/02 09:37:53 INFO dfs.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = ip-10-251-43-226/10.251.43.226 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 0.18.3-14.cloudera.CH0_3 STARTUP_MSG: build = -r HEAD; compiled by 'root' on Mon Jul 6 15:02:31 EDT 2009 ************************************************************/ Re-format filesystem in /hadoop/hdfs/namenode ? (Y or N) Y 09/11/02 09:37:57 INFO fs.FSNamesystem: fsOwner=hadoop,hadoop 09/11/02 09:37:57 INFO fs.FSNamesystem: supergroup=supergroup 09/11/02 09:37:57 INFO fs.FSNamesystem: isPermissionEnabled=true 09/11/02 09:37:57 INFO dfs.Storage: Image file of size 80 saved in 0 seconds. 09/11/02 09:37:57 INFO dfs.Storage: Storage directory /hadoop/hdfs/namenode has been successfully formatted. 09/11/02 09:37:57 INFO dfs.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at ip-10-251-43-226/10.251.43.226 ************************************************************/
次に、各種サービスを起動します。masterで、namanode, secondarynamenode, jobtrackerを起動します。jpsコマンドで実際にプロセスが立ち上がっているかどうかを確認してください。
master% /sbin/service hadoop-namenode start master% /sbin/service hadoop-secondarynamenode start master% /sbin/service hadoop-jobtracker start master% /usr/java/default/bin/jps 2082 SecondaryNameNode 1803 NameNode 1884 JobTracker 2104 Jps
同じように、slaveでdatanode, tasktrackerを起動します。
slave% /sbin/service hadoop-datanode start slave% /sbin/service hadoop-tasktracker start slave% /usr/java/default/bin/jps 1404 Jps 1306 DataNode 1372 TaskTracker
以上で設定・起動は終了です。次に実際の動作確認に移ります。一番簡単な、grepジョブを動かしてみます。まずは、ルートパスとホームディレクトリにパーミッションをあけます。
master% /sbin/runuser -s /bin/bash - hadoop -c '/usr/bin/hadoop fs -chmod 777 /' master% /sbin/runuser -s /bin/bash - hadoop -c '/usr/bin/hadoop fs -mkdir /home/' master% /sbin/runuser -s /bin/bash - hadoop -c '/usr/bin/hadoop fs -chmod 777 /home/'
最後に、適当なユーザー(ここではhadoopuserというユーザーを作成しました)で以下のコマンドを実行します。ここでは、/etc/hadoop/conf以下のファイルをHDFSにアップし、それらのファイルからdfs[a-z.]+というパターンにマッチする単語を抽出し、出現頻度をカウントしています。
[hadoopuser@master]$ /usr/bin/hadoop fs -copyFromLocal /etc/hadoop/conf/ /home/hadoopuser/input/ [hadoopuser@master]$ /usr/bin/hadoop fs -lsr /home/hadoopuser/input/ -rw-r--r-- 3 hadoopuser supergroup 196 2009-11-02 10:41 /home/hadoopuser/input/commons-logging.properties -rw-r--r-- 3 hadoopuser supergroup 535 2009-11-02 10:41 /home/hadoopuser/input/configuration.xsl -rw-r--r-- 3 hadoopuser supergroup 50 2009-11-02 10:41 /home/hadoopuser/input/fairscheduler.xml -rw-r--r-- 3 hadoopuser supergroup 39208 2009-11-02 10:41 /home/hadoopuser/input/hadoop-default.xml -rw-r--r-- 3 hadoopuser supergroup 2237 2009-11-02 10:41 /home/hadoopuser/input/hadoop-env.sh -rw-r--r-- 3 hadoopuser supergroup 1245 2009-11-02 10:41 /home/hadoopuser/input/hadoop-metrics.properties -rw-r--r-- 3 hadoopuser supergroup 4160 2009-11-02 10:41 /home/hadoopuser/input/hadoop-site.xml -rw-r--r-- 3 hadoopuser supergroup 2815 2009-11-02 10:41 /home/hadoopuser/input/log4j.properties -rw-r--r-- 3 hadoopuser supergroup 10 2009-11-02 10:41 /home/hadoopuser/input/masters -rw-r--r-- 3 hadoopuser supergroup 10 2009-11-02 10:41 /home/hadoopuser/input/slaves -rw-r--r-- 3 hadoopuser supergroup 401 2009-11-02 10:41 /home/hadoopuser/input/sslinfo.xml.example [hadoopuser@master]$ /usr/bin/hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar grep /home/hadoopuser/input /home/hadoopuser/output 'dfs[a-z.]+' [hadoopuser@master]$ /usr/bin/hadoop fs -ls /home/hadoopuser/output/ Found 2 items drwxrwxrwx - hadoopuser supergroup 0 2009-11-02 10:44 /home/hadoopuser/output/_logs -rw-r--r-- 3 hadoopuser supergroup 1135 2009-11-02 10:45 /home/hadoopuser/output/part-00000 [hadoopuser@master]$ /usr/bin/hadoop fs -cat /home/hadoopuser/output/part-00000 | head -n 5 3 dfs. 3 dfs.class 2 dfs.name.dir 2 dfs.block.size 2 dfs.namenode.handler.count
以上で終了です。次回は、Hiveを同じようにインストールしてみたいと思います。
Similar Posts:
- Newer: 新型インフルエンザ
- Older: Hadoop World NYC 参加記
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://kzk9.net/blog/2009/11/install_cloudera_distribution_for_hadoop.html/trackback
- Listed below are links to weblogs that reference
- Cloudera Distribution for Hadoopのインストール方法 from moratorium
- pingback from Tweets that mention Cloudera Distribution for Hadoopのインストール方法 - moratorium -- Topsy.com 09-11-03 (Tue) 1:12
-
[...] This post was mentioned on Twitter by V, KazukiOhta. KazukiOhta said: New blog posting, Cloudera Distribution for Hadoopのインストール方法 - http://tinyurl.com/yha7zon [...]
