Home > Hadoop Archive
Hadoop Archive
Cloudera Distribution for Hadoopのインストール方法
- 2009-11-03 (Tue)
- 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を同じようにインストールしてみたいと思います。
- Comments: 0
- Trackbacks: 1
Hadoop World NYC 参加記
- 2009-10-07 (Wed)
- Hadoop

と言う訳でHadoop World NYC, 2009の参加記を書きます。

1日目はSystem Administrator用のトレーニングコースを受け、2日目がカンファレンス本番でした。トレーニングコースはDeveloper向け(3日間)とManager向けのビジネス寄りのコースが有り、合計で100人ぐらいは参加していたと思います。カンファレンスの本番自体は400~500人の参加でした。
まずSystem Adminコースですが、大体以下のような内容でした。
- MapReduceの基本概念
- ハードウェア/ネットワーク機器の選定ポイント
- OSやJavaなど、ソフトウェアでの注意点
- Hadoop(Cloudera Distribution)のインストール方法
- パラメーター/パフォーマンスチューニング(非常に細かい)
- Rack Topologyの定義方法
- HA構成/バックアップ/リカバリー方法
- Fair Shair Schedulerの動作と使用方法
- Gangliaを使用したシステムモニタリング
- Hadoopのログファイルについて
大体6時間ぐらいのコースで、これを聞くとプロダクションレベルでHadoopクラスタを管理できるように一応なるかなという感じでした。結構細かいパラメーターの話が有ったり、個人的に気になっていたFairShair Schedulerの話が聞けたり、かなり勉強になりました。
お金を取っていたので、全部書いていいものか分からないので、内容を聞きたい方は一緒に飲みに行った時にでもこっそり聞いて下さい(?) 参加者とも少し話してみたのですが、広告配信の会社、インドのSIer、西海岸の小さいスタートアップ等、かなり色々な分野の人が集まっているという印象でした。
次はカンファレンス本番の方です。以下は現在公開されているスライドです。見つけ次第、適当に追加していきます。
- Real Time BI with Hadoop
- Prototypoing Data Intensive Apps: TrendingTopics.org
- hBase, Hadoop World NYC
- NexR Terapot: Massive Email Archiving
また参加者全員に、Hadoop: The Definitive Guideが配布されました。
セッションが途中から3パラになっていて、全部聞く事は無理なので、僕が聞いた中で気になったものだけピックアップして書いてみます。
Making Hadoop Easy on Amazon Web Services
Amazon EC2上でのElastic MapReduceの話です。Apache HiveがElastic MapReduce上でサポートされた事が発表されました。またユーザー事例としてeHarmonyという出会い系サイトでの事例が紹介されていました。アメリカでは4%ぐらいのカップルがこのサイト経由で結婚するらしいです。
またKarmasphere Studio for Haodopという、MapReduceアプリケーション開発用のIDEが公開されていました。Elastic MapReduceと連携し、IDE上からMapReduceタスクのテスト/実行/デバッグを行えるようです。

Hadoop Applications at Yahoo!
Yahooでの使用事例の話です。Yahooでは現在約25000台程度のノード上でHadoopが走っているようです。そのうちの約20%が本番用、約60%がResearch目的という事でした。

ただ、Yahoo.comのトップページに表示されているコンテンツの裏では結構使われているようで、Ad Optimization, Search Index, RSS Feeds, Machine Learned Spam Filters, Content Optimization (Personalization?)などなどに使われているようです。

またYahoo Search Assistでは3年間のログを20ステップのMapReduceで処理をすることで、検索時の関連ワード用インデックスを作成しているようです。元々はC++で書かれていて実行に26日かかっていたものが、Pythonで書けるようになった上に実行時間が20分まで縮んだようです。

Rethinking the Data Warehouse with Hadoop and Hive
Facebookでの使用事例です。FacebookではログをHadoopクラスタに取り込んで、解析が行われているようです。

またHiveという、SQLライクなクエリ言語でMapReduceジョブを走らせる仕組みを開発しており、約95%のジョブがHiveQL(QueryLanguage)経由で実行されているようです。アプリケーションとしては、日々のPVなどのReporting・Adhoc-Analysis・Machine Learningに使われているらしいです
What’s new from Cloudera
Web上からMapReduceクラスタについての様々な操作を行ったり、情報を見るためのツール、Cloudera Desktopの紹介でした。
Large Scale Transaction Analysi

VISAでの使用事例です。32ノード程度とまだ評価段階な印象を受けました。20分ぐらいVISAの話でHadoopの話が全然出てこなかったのでちょっと期待外れ…。
Cross Data Center Logs Processing
RackSpaceというホスティング会社での使用事例です。RackSpaceではカスタマーサポート用に、ユーザーが送ったEメールの状態を追跡したり、ログなどをインデックス化して検索できるようにしているらしいです。具体的にはHadoopでLuceneのインデックスを作成し、Solr経由で検索を行っているとの事でした。

Hadoop Development at Facebook: Hive and HDFS
Facebookで行われているHive, HDFSの機能改善の紹介でした。個人的にはHDFS-220のArchival機能の話などが面白かったです。

Cool Development Projects at Yahoo!: Automatic Tuning and Social Graph Analysis
Yahoo Incの方からルールベースでのHadoop Clusterの異常検知手法と、Social Graph解析の話が有りました。後半は学会みたいな乗りでした。
Practical HBase: Getting the most from your HBase install
Stumbleupon, StreamyでのhBaseの内部構成/使用事例の話が有りました。su.prというURL短縮サービスで用いられているようです。約90億エントリ/1300GBで運用されているようです。
またhBaseの最新版ではZooKeeperとのインテグレーションが行われマルチマスター構成でも動作するようになったとの事で、こちらも試してみようかと思います。そういえばHyperTableについては今回は発表は無かったですね。
Hadoop + Vertica
VerticaというColumn-Oriented DBを作っている会社が、Vertica上でのMapReduceをHadoopを使用してサポートしたという話でした。StonebrakerがFounderで有名です。
Input/Output周りをVertica用に作ったと言う話だけだったので、実際どれぐらいパフォーマンスが出てるとか、HDFSと比べてどうとかいう話が無かったので、ちょっと残念でした。
Production Deep Dive with High Availability
ContextWebという広告配信の会社での使用事例の話でした。この会社ではコンテンツマッチをHadoopで行っており、そこがビジネスの根幹であるため、高可用性が求められます。
詳しい内容は、Hadoop HA Configurationを見て頂けると分かります。18か月で約6回のフェイルオーバーが起こり、そのうち約3回は予定していたものという事でした。
とりあえずこんな所です。後半力尽きた感が有るので、夜にでもまた書き足します(^_^:
- Comments: 0
- Trackbacks: 5
Hadoop World 2009 @ NYC
- 2009-10-04 (Sun)
- Hadoop


Hadoop World 2009に参加するために、NewYorkに来ています。参加者は全体で500人ぐらい。日本からは6~7人ぐらい参加していました。
Cloudera (Hadoopの商用サポートを行っている企業) のMike Olson CEO。BerkeleyDBを作っていたSleepyCatの元CEO。

同じくClouderaのChristophe Bisciglia。

名刺交換してると、色々なIndustryの人がいて面白かったです。かなり盛り上がりを感じました。Clouderaの方に聞いた所、小さいウェブスタートアップから、大きいキャリアまで、色々適用範囲が広がっているようです。まだまだ20人ぐらいの会社なのに、プレセンスが大きくて凄いなーと思いました。
個人的には、System Administrator用のトレーニングコースも受けて、色々と運用上のノウハウなども聞けました。意外と細かいパラメーターがパフォーマンスに効いてきて、しかもデフォルト値が悪いやつが多い…。
帰国したら、内容をまとめまたいと思います。
- Comments: 0
- Trackbacks: 0
Hadoop 0.19.1 disabled the APPEND API
- 2009-04-01 (Wed)
- Hadoop

Hadoop 0.19.1がリリースされています。
しかし0.19.0で実装されたAppendが実はバグ持ちであることが発覚したので、UnsupportedExceptionを投げるような変更が行われました。Appendは0.20系に持ち越しな予感ですね。
# エイプリルフールネタじゃないですよ:-(
- Comments: 0
- Trackbacks: 0
HDFSの信頼性に関するレポート by Cloudera. Inc.
- 2009-01-14 (Wed)
- Hadoop

Clouderaという会社から、HDFSの耐障害性の解説と、運用する点でのポイントが書かれたドキュメントが出ているみたいです。
このClouderaという会社はSleepycat(BDB作ってた会社、Oracleが買収)の元CEOが立ち上げた会社で、Hadoopの商用サポート・トレーニングをしてるみたいですね。
メンバーを見ると、層々たる面々。ChristophさんはGOOGにいる時に取り上げられてたりしてましたね。
Hadoop周りの人(そんな人いるのか?)は要注目の会社だと思います。
- Comments: 0
- Trackbacks: 0
Home > Hadoop Archive
-
- August 2010
- May 2010
- February 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006

