Mac OS XにHadoop環境を構築する

Hadoop は大規模データを効率的に分散処理・管理するためのミドルウェアです。

今回はMac OS X上にHadoop環境を構築したいと思います。

基本的なこと

  • HDFS

    • 分散ファイルシステム
  • MapReduce

    • 分散処理システム
  • NameNode

    • メタデータを管理する。
  • DataNode

    • 実データを保持する。

環境

Mac OS X 10.9.4
Hadoop 2.5.0

インストールする

$ brew install hadoop

スタンドアロンモードで動かしてみる

$ mkdir input
$ echo 'hoge piyo hoge hoge huga hoge' > input/file
$ hadoop jar /usr/local/opt/hadoop/libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount input output
$ cat output/*
hoge    4
huga    1
piyo    1

localhostにSSHログインできるようにする

パスフレーズなしのSSHログインができるようにする

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
# ~/ssh/config

Host localhost
 HostName 127.0.0.1
 Port 22

※ システム環境設定 > 共有 > リモートログイン を有効化する

設定ファイルを修正する

$ cd /usr/local/opt/hadoop/libexec/etc/hadoop
# core-site.xml

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>
# hdfs-site.xml

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

Hadoopを起動する

ファイルシステムをフォーマットする

$ hadoop namenode -format

NameNode daemon と DataNode daemonを起動する

$ start-dfs.sh

起動できているか確認する

$ jps
12057 DataNode
13172 Jps
12538 ResourceManager
12861 NodeManager
12395 SecondaryNameNode
11981 NameNode

クラスターの状態を確認する(NameNode)

http://localhost:50070

Hadoopを停止する

$ stop-dfs.sh

以上、Hadoop環境の構築でした。