Hadoop on MacOSX

| # Comments | 2 Trackbacks
MacOSXにHadoopを擬似分散モードで動作できるようにインストールした時の記録です。

利用した環境は次の通りです。

  • MacOSX Snow Leopard
  • Hadoop 0.20.2

また、参考にしたページは次のページです。

このページにはHBaseのインストールまで記載されていますが、まだそこまでやっていないので、機会があればということで。

ダウンロード

ダウンロードページから、適当なミラーサイトを選んでダウンロード。
/usr/local に展開します。

$ pwd
/usr/local
$ sudo tar zxvf /path/to/hadoop-0.20.2.tar.gz
$ sudo ln -s hadoop-0.20.2 hadoop

以降、このインストールディレクトリを ${HADOOP_HOME} と記述します。

sshd

Hadoopを擬似分散モードで起動するには、sshdが必要です。
※正確には、必ずしも必要ではありませんが、あった方が便利です。

「システム環境設定」から、「共有」の「リモートログイン」を有効にすればsshdが起動します。
擬似分散モードではローカルホストからしかアクセスしないので、ファイアウォールは有効にしておいても大丈夫です。

hadoopユーザー作成

Hadoopの各サーバーを起動するための実行ユーザー hadoop を作成します。

hadoopユーザー向けのグループIDとユーザーIDを決める

利用中のグループIDを調べる

$ sudo dscl . -list /Groups PrimaryGroupID | cut -c 32-38 | sort -rn

利用中のユーザーIDを調べる

$ sudo dscl . -list /Users UniqueID | cut -c 23-28 | sort -rn

cut の範囲がずれている場合があるので、適宜調節してください。

それぞれ出てきたIDと被らないIDを選びます。
僕の環境では300番が空いていたので、以降、グループID/ユーザーIDを300とします。

ユーザー作成

hadoopグループと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 . -append /Users/_hadoop RecordName hadoop

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

hadoopユーザーのホームディレクトリ( /var/lib/hadoop )にデータを入れるよう設定していきます。
環境に合わせて変更してください。

パスなし認証設定

ローカルホストにパスワードなしでsshログインできるように、パスフレーズなし鍵認証の設定を行います。

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

※ 鍵の取り扱いには要注意です!

ログインできるか確認します。

Hadoop設定

設定するファイルはhadoop-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlの4つです。

${HADOOP_HOME}/conf 以下に設置します。

hadoop-env.sh

JAVA_HOMEと、後でMapReduceScalaを使いたいので、HADOOP_CLASSPATHの設定をしておきます。

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export HADOOP_CLASSPATH=/opt/local/share/scala-2.8/lib/scala-library.jar

その他はデフォルトのままにしておきます。

core-site.xml

詳しい説明とそのデフォルト値は core-default.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>

hdfs-site.xml

詳しい説明とそのデフォルト値は hdfs-default.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>

mapred-site.xml

詳しい説明とそのデフォルト値は mapred-default.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>

ログディレクトリ

${HADOOP_HOME}/logsがない場合には作成しておきます。

$ sudo mkdir ${HADOOP_HOME}/logs
$ sudo chown hadoop:hadoop ${HADOOP_HOME}/logs

NameNodeのフォーマット

初めてHadoopを起動する前に、NameNodeをフォーマットします。

$ sudo su - hadoop
$ ${HADOOP_HOME}/bin/hadoop namenode -format

Hadoop起動

hadoopユーザーでHadoopを起動します。

$ sudo su - hadoop
$ ${HADOOP_HOME}/bin/start-all.sh

これで無事に起動しました。

ユーザーディレクトリ作成

上記の設定では、パーミッションが有効になっているため、各ユーザーの作業用には別途ディレクトリを作成する必要があります。

例) ueshinユーザー用

$ sudo su - hadoop
$ ${HADOOP_HOME}/bin/hadoop fs -mkdir /user/ueshin
$ ${HADOOP_HOME}/bin/hadoop fs -chown ueshin:staff /user/ueshin

これで、ueshinユーザーは自由にHDFS上のファイルを操作することができるようになります。

ueshin$ ${HADOOP_HOME}/bin/hadoop fs -mkdir input
ueshin$ ${HADOOP_HOME}/bin/hadoop fs -put ${HADOOP_HOME}/conf/*.xml input
ueshin$ ${HADOOP_HOME}/bin/hadoop fs -ls
ueshin$ ${HADOOP_HOME}/bin/hadoop fs -ls input
ueshin$ ${HADOOP_HOME}/bin/hadoop fs -cat input/core-site.xml

トラックバック(2)

先日セットアップした擬似分散モードの動作確認を行います。テストに使うサンプルはい... 続きを読む

Happy-Camper Street - HBase on MacOSX (2010年6月29日 20:55)

MacOSXにHBaseをインストールした時の記録です。利用した環境は以下の通り... 続きを読む

comments powered by Disqus

Twitter Icon

AdSense

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 5.14-ja

Google検索

カスタム検索

2013年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31