気まぐれな備忘録 このページをアンテナに追加 RSSフィード

2011-11-02 MacOSX(Lion)でHadoop環境を試す

MacOSX(Lion)でHadoop環境を試す

| 06:21 | MacOSX(Lion)でHadoop環境を試すを含むブックマーク MacOSX(Lion)でHadoop環境を試すのブックマークコメント

内容

ほぼHadoop on MacOSXの内容を参考にさせていただきました。

  • MacOSX:10.7.2 Lion
  • Hadoopバージョン:hadoop-0.20.205.0

  • 動作モード:擬似分散モード
  • HADOOP_HOME:/usr/local/hadoop
  • アプリケーションアカウント:hadoop (RecordName:_hadoop)
    • グループID/ユーザーID:300
    • ホームディレクトリ:/var/lib/hadoop

Hadoopのダウンロードと展開

apache hadoopのダウンロードページから最新バージョンをダウンロード。
私はhadoop-0.20.205.0をダウンロードしました。

hadoop-0.20.205.0.tar.gzを展開
場所は/usr/localに限らずどこでも。

cd /usr/local
sudo tar zxvf /path/to/hadoop-0.20.205.0.tar.gz
sudo ln -s hadoop-0.20.205.0 hadoop

hadoopユーザー作成

グループID/ユーザーIDを決めます。300番が空いてるかどうか調べます。

sudo dscl . -list /Groups PrimaryGroupID | grep 300
sudo dscl . -list /Users UniqueID | grep 300

300番が空いてなければ、空いてる番号を調べましょう。

sudo dscl . -list /Groups PrimaryGroupID | cut -c 32-38 | sort -rn
sudo dscl . -list /Users UniqueID | cut -c 23-28 | sort -rn

hadoopユーザーとグループを作成します。

sudo dscl . -create /Groups/_hadoop PrimaryGroupID 300
sudo dscl . -append /Groups/_hadoop RecordName hadoop

sudo dscl . -create /Users/_hadoop UniqueID 300
sudo dscl . -create /Users/_hadoop RealName "Hadoop Service"
sudo dscl . -create /Users/_hadoop PrimaryGroupID 300
sudo dscl . -create /Users/_hadoop NFSHomeDirectory /var/lib/hadoop
sudo dscl . -create /Users/_hadoop Password "*"
sudo dscl . -create /Users/_hadoop UserShell /bin/bash
sudo dscl . -append /Users/_hadoop RecordName hadoop

sudo /usr/sbin/createhomedir -b -u hadoop

パスフレーズなし鍵認証の設定を行います。

sudo su - hadoop
ssh-keygen
cd .ssh
cat id_rsa.pub >> authorized_keys

ログインし、.bash_profileを作成し、環境変数を設定しておきます。

/var/lib/hadoop/.bash_profile
HADOOP_HOME=/usr/local/hadoop
export HADOOP_HOME

PATH=/usr/local/hadoop/bin:$PATH
export PATH


Hadoop設定


/usr/local/hadoop/conf/hadoop-env.sh

JAVA_HOMEとHADOOP_OPTSを設定します。

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home

# export HADOOP_OPTS=-server
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

※このHADOOP_OPTSを設定することで、"Unable to load realm info from SCDynamicStore"を回避します。

/usr/local/hadoop/conf/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->
<configuration>

  <property>
    <name>hadoop.tmp.dir</name>
    <value>/var/lib/hadoop</value>
  </property>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

/usr/local/hadoop/conf/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->
<configuration>

  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

</configuration>


/usr/local/hadoop/conf/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
  </property>

</configuration>

ログディレクトリの作成

sudo mkdir /usr/local/hadoop/logs
sudo chown hadoop:hadoop /usr/local/hadoop/logs

namenodeのフォーマット

sudo su - hadoop
hadoop namenode -format


Hadoopの起動と終了

リモートログインを有効化
「システム環境設定」から、「共有」の「リモートログイン」を有効にすればsshdが起動します。
疑似分散モードではローカルホストからのアクセスのみなので、ファイアウォールを変更する必要はありません。というか有効にしておきましょう。
また、Hadoopを動作させない時はリモートログインを無効に戻すのを忘れずに。

/usr/local/hadoop/bin/start-all.shで起動します。
sudo su - hadoop
start-all.sh

/usr/local/hadoop/bin/start-all.shで終了。
sudo su - hadoop
stop-all.sh
リンク元
Connection: close