†Hadoopの環境をVMwareイメージ(OS:CentOS5.5-x86_64)上に作成しSourcefoge.jpにイメージを公開しています。その作成手順について記載しています。build-385536で作成しています。VMwareイメージのバージョンとしてはWorkstation6.5-7.xです。イメージを動作させるために対応したバージョンのVMwarePlayerなどのソフトウェアが必要です。Playerはこちらからダウンロードすることができます。イメージが圧縮ファイルを解凍すると約3.1GBの容量になります。FAQをご覧ください。Note本手順ではHadoopテスト環境を構築しHDFS、MapReduceのローカルモード、擬似分散モードでの動作確認をする事を主な目的としています。セキュリティ設定への考慮など不足している箇所がありますのでご了承ください。Projectの1つです。主な特徴はHDFS、MapReduceがあります。HDFSはブロックサイズがデフォルトで64MBと非常に大きく(ex3のデフォルトブロックサイズは4096バイト)、テラバイトからペタバイトのデータサイズを扱う分散ファイルシステムです。MapReduceは並列分散処理のためのフレームワークです。HDFS、MapReduceにはMasterサーバとSlaveサーバが存在しそれぞれにノードがあります。HDFSではデータをメタデータで管理し実データの複製管理などを行っています。MapReduceではjobの並列分散管理などを行っています。MapReduceはMap処理、Shuffle&Sort処理、Reduce処理に分けることができます。大量の小さいファイルの書き込みやファイルの更新には向いていません。この点についてはHBase(Hadoopの関連プロジェクト)や従来のRDBMSと組み合わせることで補うことも可能です。詳細についてはhadoop.apache.orgや、HBaseをご覧ください。HadoopのソフトウェアはCommon、HDFS、MapReduceから構成されています。CommonはHadoopプロジェクトのサポートユーティリティです。HDFS、MapReduceの役割とそれぞれのMasterサーバ、Slaveサーバの各ノード名称を以下に記載します。TaskTrackerHDFS、MapReduceそれぞれのノードについての名称と概略を以下に記載します。MasterNote本手順では実行していませんがHadoopではMasterが単一障害点になるため、その対策として一定の間隔でNamenodeのバックアップを取るためのサービスSecondarynamenodeがあります。Slaveそれぞれの詳細についてはCommon、HDFS、MapReduceをご覧ください。動作モードとしてローカルモード、擬似分散モード(pseudo)、完全分散モードがあります。ここではローカルモードと擬似分散モードについて記載しています。それぞれの概略は以下のとおりです。Startedをご覧ください。Hadoop』の略称です。CDHではHadoopとHadoopの関連プロジェクト(以降、コンポーネントと記載)であるHbase、Pig、Hiveなどとの整合性をある程度とりリリースされています。このためHadoopおよびコンポーネントの導入が比較的容易になっています。本手順ではCDH3beta4(2011年4月1日当時の最新)で記載しています。2011年4月14日にCDH3がリリースされました。Detailsをご覧ください。†CDH3beta4に含まれるhadoop-0.20.2を使用しています。hadoop.apache.orgで公開されているHadoopの最新版は0.21.0です。0.20.xと0.21.xでは機能やAPIなどに変更があります。build-385536の仮想マシン上にCentOS5.5-x86_64をインストールし設定を行います。CentOSのインストール後CDH3beta4のリポジトリを追加しHadoopと主要コンポーネントをインストール、設定を行い、ローカルモードと擬似分散モードでの動作確認をしています。Note本手順でのHadoopと主要コンポーネントとはCommon、HDFSとMapReduceのコンポーネントを指しています。今回は使用していませんが、Cloudera社からVMwareイメージも公開されています。詳細についてはこちら>をご覧ください。ハードウェア構成は以下のように設定しています。2GB、事前にGB使用しています。)Network:bridge主なアカウント情報を以下に記載します。†インストール設定このVMイメージではほぼデフォルト設定のままインストールしています。設定した項目は以下のものがあります。日本語、日本語キーボードを選択しネットワークはDHCP、IPv4enable、IPv6disableにしています。インストール元をHTTPに設定します。directory:』に『Linux/centos/5.5/os/x86_64』を入力します。Mode』を選択し適宜設定します。rootのパスワードは『beatcraft』としています。インストールパッケージインストールパッケージはSERVERを選択しカスタムをし、以下のパッケージを選択しています。共にDisableに設定しています。その他はHDDパーティニング等はデフォルトインストールにしています。†インストール完了後、アップデートを実行します。(導入されていますがリポジトリのチェックのため実行しています。標準インストールで日本時間を選んでも正しい時刻を取得できていないことがあります。時刻を確認し日本ntpサーバと時刻あわせをします。その情報をハードウェアに書き込みntpの設定に日本のntpサーバが含まれていない場合追加します。起動時にntpdが起動するように設定しています。-wntp/step-tickersに以下の3つの国内ntpサーバを追加します。/etc/ntp/step-tickersntp.nict.jpntp.jst.mfeed.ad.jpntp.ring.gr.jp完了後ntpを再起動し、時刻の確認をします。あわせてサービス登録をしておきます。onNote標準インストールで日本時間を選んでも正しい時刻を取得していないことがあります。/etc/bashrcにJAVA_HOME、HADOOP_HOMEとPATHに/sbin、/usr/sbinを追加します。/sbinと/usr/sbinにPATHを追加しているのはコマンド(ifconfig、alternatives)などのタイプ数を減らすためです。PATH=/sbin:/usr/sbin:$HADOOP_HOME/bin:$PATHNoteJAVAの実行時およびHadooのサービス起動時および実行時にエラーが発生した場合はJAVA_HOME、HADOOP_HOMEが正しく設定されているかの確認をしてください。一般ユーザにbeatとhadoopを追加します。beatは一般ユーザ用、hadoopはCDHインストール時にhdfsというユーザ名に変更されます。hdfs(hadoop)ユーザはHadoopでの作業用として作成しています。hadoopはpassword無しの設定をしています。ご使用の環境に合わせて適宜変更してください。beatユーザの作成useraddコマンドとpasswdコマンドでbeatユーザ、パスワードbeatcraftを作成します。beatvisudo設定sudoコマンドを実行できるユーザにbeatとhdfsユーザを追加します。コマンドでhadoopユーザ、パスワードなしを追加します。本VMwareイメージではrootでのログイン許可をしています。hadoopユーザにて鍵作成をしていますが、空PASSWORDも許可しています。ご使用の環境に合わせて適宜設定を変更してください。hadoopユーザの鍵作成ssh-keygenコマンドで鍵タイプrsa、パスワードなしのrsa鍵を/home/hadoop/.ssh/id_rsaに作成します。擬似分散モードや別マシンからのログインするためにsshd_configの設定をしsshdを再起動します。パスワード許可、パスワード認証許可としています。設定を変更してください。†JDKのインストールをします。(jdk-6u24-linux-x64-rpm.bin)をダウンロードしここでは/home/beat/jdkディレクトリに配置しました。インストールの際はrootで実行します。/usr/java/jdk1.6.0_24/etc/bashrcで設定したJAVA_HOMEとディレクトリ位置があっているかを確認してください。不要なサービスの停止をします。--listを使用します。本VMwareイメージではrunlevel3で起動しています。ご使用の環境に合わせて不必要なサービスがあれば停止もしくは起動をしてください。<off|on>で実行してください。chkconfigを参照してください。ここではiptablesをoffに設定します。6:off以上でCentOS上での基本的な設定は完了です。本VMwareイメージでは意識してセキュリティに関する事象を除外しています(sshdのrootログインなど)。†CDH3beta4のリポジトリを追加しCDHを導入します。以下のようにリポジトリを追加します。0リポジトリを追加後yumの更新をします。†Hadoopの主要コンポーネントと擬似分散モード用設定のインストールをします。searchコマンドを使って、Hadoop-0.20.2に対応する主要コンポーネントを確認しインストールします。コマンドは文書中改行をしていますが、実コマンドはyumから-yまで1行で実行しています。それぞれのコンポーネントの関係は以下のとおりです。secondarynamenodeは一定の間隔でNamenodeのバックアップを取るためのサービスです。本VMwareイメージではこのサービスは使用していません。yumコマンドの末尾『-y』はyum実行中のすべての質問に『y(yes)』と返すオプションです。-y各コンポーネントの関係を以下に記載します。JobTrackerから割当てられた処理を実行するワーカーhadoopをインストール完了後、mapred,hdfsユーザが追加されていることを確認します。CDH3beta4を導入した際、作成していたhadoopユーザがhdfsユーザに切り替わります(パスワードは空のまま引き継がれます)。†Hadoopの動作モードにはローカルモード、擬似分散モード、完全分散モードがあります。ローカルモード用の設定を使用します。本VMwareイメージでは設定をしませんが追加設定として設定ファイル(conf.bc_cluster)を追加しています。hadoopでは/etc/hadoop-0.20/以下にconf、conf.empty、conf.pseudo(擬似分散用設定ディレクトリ)があります。confはhadoop-0.20-conf-pseudo(擬似分散モード用設定)のsymlinkに設定されています。このsymlinkをalternativesコマンドで変更しローカルモード、擬似分散モード、完全分散モードなど各設定でのHadoopの起動が可能になります。ここではローカルモード用の設定conf.localと完全分散用の設定conf.bc_clusterを作成します。各コピー元ファイルはconf.emptyとしconf.emptyは削除しないようにします。conf.emptyにはほぼ設定が記載されていないためです。設定の切り替えにはalternativesを実行し切り替えを行います。alternativesを用いてhadoop-0.20-confのステータスとバージョン(symlinkの優先度)の確認をします。--displayコマンドで現在のhadoop-0.20-confのsymlinkの確認をします。-ステータスは自動です。